请教DataGrid里面我添加CheckBox如何获取到所有选中的CheckBox项

蜗牛水里爬 2010-10-13 09:42:29
XML代码

<sdk:DataGrid AutoGenerateColumns="False" Height="144" Name="dataGrid1" VerticalAlignment="Top" Margin="12,171,153,0" CurrentCellChanged="dataGrid1_CurrentCellChanged">
<sdk:DataGrid.Columns>
<sdk:DataGridTemplateColumn>
<sdk:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<CheckBox x:Name="myCheckbox" Checked="myCheckbox_Checked" Unchecked="myCheckbox_Unchecked" />
</DataTemplate>
</sdk:DataGridTemplateColumn.CellTemplate>
</sdk:DataGridTemplateColumn>
<sdk:DataGridTextColumn Header="传感器" Binding="{Binding number}" FontFamily="Arial" />

</sdk:DataGrid.Columns>
</sdk:DataGrid>

后台CS代码
我在外部定义了个变量来记录选中项,虽然能用但是在实际使用过程中有BUG。请教大家如何获取所有选中的项

List<ServiceReference1.DropDownListDataItems> dataGridlist = new List<ServiceReference1.DropDownListDataItems>();
private void myCheckbox_Checked(object sender, RoutedEventArgs e)
{

CheckBox cb = sender as CheckBox;
if (dataGrid1.SelectedItem != null)
{
ServiceReference1.DropDownListDataItems dr = dataGrid1.SelectedItem as ServiceReference1.DropDownListDataItems;
dataGridlist.Add(dr);
//MessageBox.Show("+");



}
}

private void myCheckbox_Unchecked(object sender, RoutedEventArgs e)
{
CheckBox cb = sender as CheckBox;
if (dataGrid1.SelectedItem != null)
{
ServiceReference1.DropDownListDataItems dr = dataGrid1.SelectedItem as ServiceReference1.DropDownListDataItems;
dataGridlist.Remove(dr);
//MessageBox.Show("-");

}
}
...全文
106 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
saishangpeiqian 2010-10-13
  • 打赏
  • 举报
回复

<CheckBox x:Name="ck" Tag="{Binding CID}" ></CheckBox>

<CheckBox x:Name="CBAll" Content="全选/反选" Grid.Column="0" HorizontalContentAlignment="Center" Height="23" Click="CheckBox_Click" Margin="4,5,0,0"></CheckBox>

<Button Content="删除选中项" Width="60" Height="23" Click="Button_Click" ></Button>




private void CheckBox_Click(object sender, RoutedEventArgs e)
{
if (grid.ItemsSource != null)
{
if (this.CBAll.IsChecked.Value)//全选
{
foreach (object ovj in grid.ItemsSource)
{
CheckBox cb1 = grid.Columns[0].GetCellContent(ovj).FindName("ck") as CheckBox; //cb为

cb1.IsChecked = true;
}
}
else//取消
{
foreach (object obj in grid.ItemsSource)
{
CheckBox cb2 = grid.Columns[0].GetCellContent(obj).FindName("ck") as CheckBox;

cb2.IsChecked = false;
}
}
}
}


private void Button_Click(object sender, RoutedEventArgs e)
{

string strID = "";
foreach (object ovj in grid.ItemsSource)
{
CheckBox cb1 = grid.Columns[0].GetCellContent(ovj).FindName("ck") as CheckBox;

if (cb1.IsChecked.Value)
{
strID = strID + cb1.Tag + ",";
}
}





我是这样写的 已经实现了
蜗牛水里爬 2010-10-13
  • 打赏
  • 举报
回复
谢谢了 明天试下 光忙着写项目去了

8,737

社区成员

发帖
与我相关
我的任务
社区描述
WPF/Silverlight相关讨论
社区管理员
  • WPF/Silverlight社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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