我還是很新的WPF/XAML所以我在這裏忍受...複選框未更新時來源已變更
我有一個包含三列一個DataGrid:2個DataGridTextColumns和DataGridTemplateColumn,其中包含一個CheckBox 。 DataGrid綁定到顯示Field類型對象的集合。 CheckBox的IsChecked屬性也綁定到ViewModel中的屬性。
我希望能夠實現的是,當一個字段即DataGrid中的一行被點擊時,該字段的對應複選框將被選中或取消選中。
我已綁定到DataGrid的SelectedItem並可以檢索單擊的字段。然後我相應地設置字段的「IsChecked」屬性。
但是,複選框中的檢查似乎沒有出現(或消失),直到DataGrid中的行被重新繪製。也就是說,如果向下滾動以使該行消失,然後再向後滾動,Check將顯示在CheckBox中。當設置了IsChecked屬性值時,我引發了一個INotifyPropertyChanged事件。
任何人都可以建議這裏可能會出錯嗎?
包含CheckBox的列的代碼如下所示。
任何想法/建議/幫助將不勝感激。
非常感謝。
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<CheckBox IsChecked="{Binding IsChecked, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Margin="5" />
</DataTemplate>
</DataGridTemplateColumn>
</DataGridTemplateColumn>
是'IsChecked'實際上是一個依賴項屬性或屬性那觸發PropertyChanged事件?這看起來很好,所以我會仔細檢查綁定本身。 – TyCobb
IsChecked只是一個標準屬性,即不是依賴屬性。它應該是? – user3124134
它不一定是,但你需要確保你在setter中發射了PropertyChanged事件。如果你不知道,沒有什麼可以告訴Binding價值的變化。以下是DependencyProperty的一個頁面http://www.codeproject.com/Articles/18270/A-Guided-Tour-of-WPF-Part-3-Data-binding,並且爲了綁定到業務對象屬性,請查看INotifyPropertyChanged '接口和WPF。 – TyCobb