我有一个带有城市和乡村财产的课程,我将其扩展为两个值。
public class Area
{
public string City;
public string Country;
}
这是由RIA服务公开给Silverligt的,我有一个扩展名
public partial class Area
{
public string AreaString
{
get { return City + ", " + Country;}
}
在我的XAML中,数据网格正在使用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>
此数据网格绑定到数据表单,我可以使用双向绑定编辑Country和City属性。但是,我应该如何使用新值“更新”数据网格?触发AreaString属性的新get。
答案 0 :(得分:2)
当您触摸City或Country时,您也应该通过PropertyChanged事件通知AreaString。 为了实现这一目标,您还应该使区域实施INotifyPropertyChanged 关于如何使用它的示例是here。
答案 1 :(得分:1)
在实施INotfiyPropertyChanged接口后添加OnPropertyChanged
,如下所示:
public partial class Area
{
public string AreaString
{
get
{
return City + ", " + Country;
OnPropertyChanged("AreaString");
}
}
}
您还应在城市 AND 国家/地区设置器中添加OnPropertyChanged("AreaString");
。
<强>更新强>
另一种方法是扩展您的实体存在的OnCityChanged
或OnCityChanging
部分方法。像:
partial void OnCityChanged()
{
OnPropertyChanged(new PropertyChangedEventArgs("AreaString"));
}