我有一個城市和鄉村屬性的類,我擴展了這兩個值的組合。Silverlight MVVM綁定和擴展類屬性的使用
public class Area
{
public string City;
public string Country;
}
這是由RIA服務暴露Silverligt,我有一個擴展
public partial class Area
{
public string AreaString
{
get { return City + ", " + Country;}
}
在我的XAML一個DataGrid使用AreaString
<sdk:DataGrid AutoGenerateColumns="False"
ItemsSource="{Binding Path=AreaCollection}"
Name="dataGrid1" Width="Auto">
<sdk:DataGrid.Columns>
<sdk:DataGridTextColumn CanUserReorder="True" IsReadOnly="True" Width="Auto" Binding="{Binding Path=AreaString}" />
</sdk:DataGrid.Columns>
</sdk:DataGrid>
這DataGrid綁定到一個dataform,我可以用雙向綁定編輯Country和City屬性。但是,我應該如何使用新值更新數據網格呢?觸發一個新的AreaString屬性。
調用PropertyChanged在getter中做了什麼好處?該代碼是否會在返回後執行?如果它確實執行,它不會導致無限循環,因爲每次檢索該值時,它都會告訴silverlight該值已更改,應該再次讀取。 – cadrell0 2011-06-08 14:09:25
但是後來我需要改變原來的類,我真的不想這樣做。也許更好的解決方案是在數據網格中使用模板列 – Kman 2011-06-08 14:13:25
@Kman - 請參閱更新。如果你正在揭露實體?如果不是,那麼第一種方式仍然適用於你。 – 2011-06-08 14:19:05