динамически изменять содержимое кнопки - PullRequest
0 голосов
/ 06 мая 2019

У меня есть datagrid с одним DatagridTemplateColumn и некоторыми DataGridTexColumn.

В DatagridTemplateColumn Я вставляю кнопку в HeaderTemplate и в CellTemplate.

При нажатии на кнопку HeaderTemplate Мне нужно, чтобы все содержимое кнопки в CellTemplate изменилось

XAML

<DataGridTemplateColumn>
 <DataGridTemplateColumn.HeaderTemplate>
  <DataTemplate>
   <Button Name ="BCAll" Height="20" Width="20" Background="White" Click="BCAll_Click" Content="" />
  </DataTemplate>
 </DataGridTemplateColumn.HeaderTemplate>
 <DataGridTemplateColumn.CellTemplate>
  <DataTemplate x:Name="BCS">
   <Button Name ="BCSing" Height="20" Width="20" Background="White" Click="BCSing_Click" Content=""/>
  </DataTemplate>
 </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>

c #:

private void BCAll_Click(object sender, RoutedEventArgs e)
{
    Button bot = (Button)sender;
    if (bot.Content == "")
    {
        bot.Content = ((char)0x221A).ToString();
        for (int i = 0; i < DTG_Can.Items.Count; i++)
        {
            Button CBM = DTG_Can.Columns[0].GetCellContent(DTG_Can.Items[i]) as Button;
            CBM.Content = ((char)0x221A).ToString();
        }
    }
    else
    {
        for (int i = 0; i < DTG_Can.Items.Count; i++)
        {
            Button CBM = DTG_Can.Columns[0].GetCellContent(DTG_Can.Items[i]) as Button;
            CBM.Content = "";
        }
    }
}

При нажатии BCAll_click если система вернет System.nullReferenceException на CBM.Content istruction.

1 Ответ

0 голосов
/ 07 мая 2019

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

for (int i = 0; i < DTG_Mod.Items.Count; i++)
{
 drv = (DataRowView)DTG_Mod.Items.GetItemAt(i);
 var item = DTG_Mod.Items[i];
 var CBM = DTG_Mod.Columns[0].GetCellContent(item) as CheckBox;
 if ((bool)CBM.IsChecked)
 { do something...

Я вижу, что 30 - это номер строки, которую я вижу в своей сетке данных

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...