-1
我使用一個DataGrid有一個複選框,我想將其綁定到一個名爲Part
類:WPF數據綁定的複選框失敗DataGrid中
public class Part
{
public bool DoImport { get; set; }
}
我的窗前,WPF是:
<Window x:Class="CompareWindow">
<Grid>
<DataGrid x:Name="CompareGrid" ItemsSource="{Binding}" >
<DataGrid.Columns>
<DataGridCheckBoxColumn Header="Import" Width="100" IsReadOnly="False" Binding="{Binding Path=DoImport, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
</DataGrid.Columns>
</DataGrid>
<Button x:Name="SelectAllBtn" Content="Select All" Click="SelectAllButton_Click"/>
</Grid>
</Window>
在有我使用一個名爲Select All
的按鈕,它應該點擊時一次檢查所有複選框:
public partial class CompareWindow : Window, INotifyPropertyChanged {
public CompareWindow(Part somePart) {
_changedParts = new ObservableCollection<Part>();
_changedParts.Add(somePart);
CompareGrid.DataContext = _changedParts;
}
public event PropertyChangedEventHandler PropertyChanged;
private void OnPropertyChanged(string name) {
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs(name));
}
private void SelectAllButton_Click(object sender, RoutedEventArgs e) {
ChangedParts.ToList().ForEach(x => x.DoImport = true);
}
private ObservableCollection<Part> _changedParts;
public ObservableCollection<Part> ChangedParts {
get { return _changedParts; }
set {
_changedParts = new ObservableCollection<Part>();
foreach (var part in value) {
_changedParts.Add(part);
}
OnPropertyChanged("ChangedParts");
}
}
}
但是當我點擊按鈕時沒有任何反應。爲什麼?
Holy'INotifyPropertyChanged' :) – Tico