我有一个城市和乡村属性的类,我扩展了这两个值的组合。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