相关文章推荐
斯文的皮带  ·  Microsoft Visual ...·  3 周前    · 
玉树临风的斑马  ·  java.lang.NullPointerE ...·  4 月前    · 
酒量小的水煮鱼  ·  POSITION function - ...·  11 月前    · 
仗义的大象  ·  QB 4.3.2 and 4.3.3 ...·  1 年前    · 

现在将CheckBox控件作为模板列嵌套进DataGrid中,希望在UI界面中对CheckBox的勾选能更新至数据源,需要注意的是在绑定语句中一定要加上 UpdateSourceTrigger=PropertyChanged,否则更新不能生效:

    <StackPanel>
        <TextBlock x:Name="ShowBBValue" Text="{Binding BB}" />
        <DataGrid x:Name="dataGrid" Grid.Row="0" ItemsSource="{Binding bindingData}" AutoGenerateColumns="False">
            <DataGrid.Columns>
                <DataGridTextColumn Header="AA" Binding="{Binding AA,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" />
                <DataGridTemplateColumn Header="BB">
                    <DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <CheckBox IsChecked="{Binding BB, Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" />
                        </DataTemplate>
                    </DataGridTemplateColumn.CellTemplate>
                </DataGridTemplateColumn>
            </DataGrid.Columns>
        </DataGrid>
    </StackPanel>
public partial class MainWindow : Window class1 a = new class1 (); ObservableCollection < class1 > bindingData = new ObservableCollection < class1 >(); public MainWindow () InitializeComponent (); InitDataBinding (); void InitDataBinding () a . AA = "aaaaa" ; a . BB = true ; bindingData . Add ( a ); ShowBBValue . DataContext = this . a ; dataGrid . ItemsSource = bindingData ; public class class1 : INotifyPropertyChanged private bool _bb ; private string _aa ; public string AA get { return _aa ; } set { this . _aa = value ; OnPropertyChanged ( "AA" ); } public bool BB get { return this . _bb ; } this . _bb = value ; OnPropertyChanged ( "BB" ); public event PropertyChangedEventHandler PropertyChanged ; void OnPropertyChanged ( string name ) if ( PropertyChanged != null ) this . PropertyChanged ( this , new PropertyChangedEventArgs ( name ));