【问题标题】:how to check DataGridCheckBoxColumn checkbox on button click event如何在按钮单击事件上检查 DataGridCheckBoxColumn 复选框
【发布时间】:2013-08-09 11:03:19
【问题描述】:

如何在单击按钮时检查 DataGridCheckBoxColumn。因此,当我触发按钮单击事件时,我希望检查 DataGridCheckBoxColumn。

 private void loadCheckBoxColumn()
    {
        MedicationDatagrid.Columns.Add( new DataGridCheckBoxColumn
         {
            Header = "Selected",
            Binding = new Binding( "checkBox" )

           } );
    }

按钮点击事件:

 private void btnchecked_Click( object sender, RoutedEventArgs e )
        {

        AwaitingMeds checkedItem = new AwaitingMeds();
        List<AwaitingMeds> awaitingMedslist = MedicationDatagrid.ItemsSource as                   List<AwaitingMeds>;
        buttonClickCheckedUnChecked();
        if( !( ( AwaitingMeds )MedicationDatagrid.SelectedItem == null ) )
        {
            checkedItem.checkBox = true;

        }

    }

buttonClickCheckedUnChecked:

   private void buttonClickCheckedUnChecked()
    {

        AwaitingMeds checkedItem = new AwaitingMeds();

        if( checkedItem.checkBox == true )
        {


            btnunChecked.Visibility = Visibility.Visible;
        }
        else
        {

            btnunChecked.Visibility = Visibility.Collapsed;
        }
    }

【问题讨论】:

    标签: c# .net wpf xaml


    【解决方案1】:

    我更喜欢在 ColumnTemplate 中使用普通的 WPF-CkeckBox。然后简单地将 CheckBox 绑定到您的 ItemSource 并通过它。

    <DataGridTemplateColumn Header="Ist aktiv" IsReadOnly="True">
        <DataGridTemplateColumn.CellTemplate>
            <DataTemplate>
                <CheckBox IsChecked="{Binding IsActiveBool}" Click="myIsActiveCheckBox_Click" />
            </DataTemplate>
        </DataGridTemplateColumn.CellTemplate>
    </DataGridTemplateColumn>
    

    【讨论】:

    • 如何将其绑定到项目源?
    • 我需要设置在按钮点击时要选择的实际刻度
    • 您不需要设置实际的刻度。设置复选框绑定为 true 和 notifyproperty 更改的布尔值
    • 如何将项目源绑定到复选框?
    • 我已经使用 wpf 数据网格很长时间了,我一直对复选框列的两次单击检查感到恼火。太棒了!
    【解决方案2】:

    按钮点击事件

    static int SelectColumnIndex = 0;
    PerformAction_Click(object sender, System.EventArgs e)
    {
    string data = string.Empty;
    foreach(DataGridViewRow row in MyDataGridView.Rows)
    {
      if(row.Cells[SelectColumnIndex].Value!=null &&
             Convert.ToBoolean(row.Cells[SelectColumnIndex].Value) == true)
      {
        foreach(DataGridViewCell cell in row.Cells)
        {
          if(cell.OwningColumn.Index!= SelectColumnIndex)
          {
            data+= (cell.Value + " ") ; // do some thing
          }
        }
        data+="\n";
      }
     }
     MessageBox.Show(data, "Data");
     }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-20
      • 1970-01-01
      • 2019-03-27
      • 2010-10-20
      • 1970-01-01
      • 1970-01-01
      • 2019-10-18
      • 2019-02-07
      相关资源
      最近更新 更多