我有一個數據對象的孩子看變化,看起來像這樣很多:在綁定屬性
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