我有一个数据对象的孩子看变化,看起来像这样很多:在绑定属性
public class ItemSetting
{
public string Description { get; set; }
public string Setting { get; set; }
}
一个我的ViewModels有这样的对象在一个名为ItemSettings属性一个ObservableCollection,它结合到ListView,像这样:
<ListView ItemsSource="{Binding ItemSettings, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}">
<ListView.View>
<GridView>
<GridViewColumn Header="Description">
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBox Text="{Binding Description}" />
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn Header="Setting">
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBox Text="{Binding Setting}" />
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
而且这工作正常。列表显示,当项目被添加或删除时得到更新,并且如果用户对描述或设置值进行了更改,它们将反映在基础对象中,并且可以在用户按下“保存”按钮时将其发送回数据库。
该列表通常非常大,并且用户要求我添加一个功能,告诉他们列表中是否存在未保存的更改以减少丢失工作的风险。在应用程序的其他地方,我们通过基本ViewModel中的UnsavedChanges布尔属性完成了该操作,我们可以在关闭之前检查该属性,该工作正常。
问题是,我不知道如何在用户输入设置或说明框中输入事件来设置布尔值。 ItemSettings公开了一个ObservableCollection,我可以通过属性的set部分来检测何时该更改。但是,当儿童价值观发生变化时,这并不会发生。
有没有一种方法,我可以做到这一点,而不需要拉动描述和设置到单独的属性和使用设置值呢?
马特,你有足够长的StackOverlfow知道,你不应该强制标签到你的问题标题按SO在http://stackoverflow.com/help/tagging上找到问题的指导原则“在标题中唯一使用标签的时候,是与标题的会话语气有机联系的。”这就是标签部分为 – Tseng