WPF中判断dataGrid的哪一行的checkbox被选中

北极星的星 2015-12-11 03:20:50
界面:
代码:
<DataGridCheckBoxColumn Header="操作" Width="10*" Binding="{Binding IsChecked}"/>
<DataGridTextColumn Header="id" Width="10*" Binding="{Binding Path=ui_id, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Visibility="Hidden"/>
<DataGridTextColumn Header="工号" Width="12*" Binding="{Binding Path=ui_number, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
<DataGridTextColumn Header="姓名" Width="10*" Binding="{Binding Path=ui_name, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
......
点击【删除】后,如何判断是哪一项呗选中?求指教!!!
后台代码:
int count = dataGrid1.Items.Count;
DataRowView[] drv = new DataRowView[count];
DataTable dt = (dataGrid1.ItemsSource as DataView).Table;

for (int i = 0; i < count; i++)
{
drv[i] = dataGrid1.Items[i] as DataRowView;
}
...全文
3060 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
JimCarter 2018-01-31
  • 打赏
  • 举报
回复 1
6楼 正解
余生余我 2018-01-31
  • 打赏
  • 举报
回复 1
//DataRowView view = (DataRowView)DataGridName.SelectedItem; //MessageBox.Show(view.Row[0].ToString()); //数据库对应索引
ilikeff8 2017-08-04
  • 打赏
  • 举报
回复
 CommandParameter="{Binding RelativeSource={RelativeSource Self}}"
ilikeff8 2017-08-04
  • 打赏
  • 举报
回复
以上演示代码是按钮列改的,反正大体就这个意思,直接查询绑定的数据的值,通过每一行的DataContext,每一行的DataContext会自动填充为行数据 A a=dataGridRow.DataContext as A;
ilikeff8 2017-08-04
  • 打赏
  • 举报
回复

 public ICommand XXXCommand
        {
            get
            {
                return new DelegateCommand<Button>((button) =>
                {
                    Functions.ButtonZoomStoryboard(button, (sender, e) =>
                    {
                        ClearErrorInfo();
                        DataGridRow dataGridRow = Functions.FindVisualParent<DataGridRow>(button);

                        if (dataGridRow != null)
                        {
                            A a=dataGridRow.DataContext as ControllerParam;
例如再判断a里的某个绑定于界面的a.isChecked
  
        static public T FindVisualParent<T>(Visual element) where T : Visual
        {
            Visual parent = element;
            while (parent != null)
            {
                T correctlyTyped = parent as T;
                if (correctlyTyped != null)
                {
                    return correctlyTyped;
                }

                parent = VisualTreeHelper.GetParent(parent) as Visual;
            }
            return null;
        }


Command="{Binding RelativeSource={RelativeSource AncestorType={x:Type DataGrid}},Path=DataContext.XXXCommand}
冰舞诗林 2017-08-03
  • 打赏
  • 举报
回复
private void CheckBox_Click(object sender, RoutedEventArgs e) { CheckBox cb = sender as CheckBox; int i = int.Parse(cb.Tag.ToString()); //获取该行的编号 } 好像这样可以
Zdachary 2017-06-10
  • 打赏
  • 举报
回复
不清楚,帮up顶一下
qbilbo 2016-09-20
  • 打赏
  • 举报
回复
用IsChecked属性判断不了?
Xq_sy_184580376 2016-09-20
  • 打赏
  • 举报
回复
楼主解决这个问题了么?求帮助,我现在也遇到这个问题了
q_Kevin 2016-09-20
  • 打赏
  • 举报
回复
你datagrid的数据是绑定的模型的话 直接模型设置个属性,然后datatemplate里的checkbox绑定这个属性,双向的,然后点删除的时候从你的数据集合里判断哪个模型的这个属性被设置为true就可以了
  • 打赏
  • 举报
回复
貌似没有栅格的选取指令。。
北极星的星 2015-12-11
  • 打赏
  • 举报
回复
dataGrid1.SelectedItem ,这是选中的行啊,但是我选中行,不一定选中checkbox啊
q107770540 2015-12-11
  • 打赏
  • 举报
回复
dataGrid1.SelectedItem

111,092

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧