Как установить все флажки в сетке данных, если флажок в столбце заголовка установлен во время выполнения? - PullRequest
0 голосов
/ 28 сентября 2018

Это мой код XAML

  <DataGrid x:Name="missiongrid" >
     <DataGrid.Columns>

                    <DataGridTemplateColumn  Header="Mission type" Width="320">
                        <DataGridTemplateColumn.HeaderTemplate>
                            <DataTemplate>
                                <StackPanel Orientation="Horizontal">
                                    <CheckBox x:Name="UpCheckbox"  Margin="10,10,0,0" 
                                               Content="Name"
                                               Checked="UpCheckbox_Click" 
                                              >
                                </CheckBox>

                                </StackPanel>
                            </DataTemplate>
                        </DataGridTemplateColumn.HeaderTemplate>
                        <DataGridTemplateColumn.CellTemplate>
                            <DataTemplate>
                                <StackPanel Orientation="Horizontal">
                                    <CheckBox Name="standardCheckbox" Margin="10,10,0,0" IsChecked= "{Binding  Column1}" Checked="CheckBox_Click_1" Unchecked="UnCheckBox_Click_1"  />
                                    <TextBlock Text="{Binding  Column2}" Padding="10,5,0,0" HorizontalAlignment="Left" />
                                </StackPanel>
                            </DataTemplate>
                        </DataGridTemplateColumn.CellTemplate>

                    </DataGridTemplateColumn>

                    <DataGridTextColumn  Header="Location"  Binding="{Binding Column3}"/>

                </DataGrid.Columns>
</Datagrid>

Я хочу, чтобы все флажки в стандартном флажке проверяли, когда флажок Upcheckbox проверяется во время выполнения.Это мой код позади.Все выполняется в сетке данных

myDataItems = new List<DataItem>();
myDataItems.Add(new DataItem { Column1 = true, Column2 = "Gambler", Column3 = "Jurassic Park", Column4 = "CasinoRoyal", Column5 = "JohnGramer" });
            myDataItems.Add(new DataItem { Column1 = true, Column2 = "Gambler",  Column3 = "Lord of the Ring", Column4 = "CasinoRoyal", Column5 = "JohnGramer" });
enter code here
            myDataItems.Add(new DataItem { Column1 = false, Column2 = "Gambler",  Column3 = "Harry potter", Column4 = "CasinoRoyal", Column5 = "JohnGramer" });
missiongrid.ItemsSource = myDataItems;

Я пытаюсь добавить этот метод onCheck, который вызывается, когда флажок установлен.

private void UpCheckbox_Click(object sender, RoutedEventArgs e)
    {


        for (int i = 0; i < myDataItems.Count; i++)
        {

            myDataItems[i].Column1 = true;// not working


        }

    }

а это не работает?Флажок вообще не изменился во время выполнения, только флажок заголовка установлен

что мне делать?

**

Обновление:

**

Это мой код элемента данных

 public class DataItem : INotifyPropertyChanged
        {


            private bool _column1;
            public bool Column1 {
                get { return _column1; }
                set
                {
                    _column1 = value;
                    if (PropertyChanged != null) 
                        PropertyChanged(this, new PropertyChangedEventArgs("Column1"));
                }
            }
            public string Column2 { get; set; }
            public string Column3 { get; set; }
            public string Column4 { get; set; }
            public string Column5 { get; set; }
            public event PropertyChangedEventHandler PropertyChanged;

        }

1 Ответ

0 голосов
/ 28 сентября 2018

Реализует ли класс DataItem INotifyPropertyChanged?Для этого нужно будет

Пример:

class DataItem : INotifyPropertyChanged
{
    event PropertyChangedEventHandler PropertyChanged;

    private bool _column1;
    public bool Column1
    {
        get { return _column1; }
        set 
        {
            _column1 = value;
            if (PropertyChanged != null) PropertyChanged(this, new PropertyChangedEventArg("Column1"));
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...