WPF 中listView绑定的checkBox怎么实现全选。。。

此后三年 2015-01-12 05:17:04
XAML代码:

<ListView.View>
<GridView>
<GridViewColumn Width="70">
<GridViewColumn.Header >
<CheckBox Click="CheckBox_Click_All" >全选</CheckBox>
</GridViewColumn.Header>
<GridViewColumn.CellTemplate>
<DataTemplate>
<CheckBox Checked="CheckBox_Checked" Tag="{Binding Path=Index}"></CheckBox>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>


c#代码:

/// <summary>
/// 全选
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void CheckBox_Click_All(object sender, RoutedEventArgs e)
{
CheckBox cb = sender as CheckBox;
if (cb.IsChecked == true)
{
foreach (CheckBox ls in LVPatienList.Items) //列表中有多条数据,希望能够点击全选按钮,下面所有数据都会被选中
{
ls.IsChecked = true;
}
//allUid = list.Select(l => l.Index).ToList();
//this.LVPatienList.SelectAll();
}
else
{
allUid.Clear();
}
/// <summary>
/// 向listview中放数据
/// </summary>
/// <param name="data">查询数据返回</param>
private void QueryReportRecProc(object data)
{
var recData = data as DicomRequestParmsModel[];

if (data == "")
{
MessageBox.Show("影像号不存在!");
return;
}

LVPatienList.Items.Clear();

if (recData.Length > 0)
{
for (int i = 0; i < recData.Length; i++)
{
var p = new listViewValue();
p.Index = i + 1;
p.PatientID = recData[i].PatientID;
p.ImgPath = recData[i].ImgPath; // 路径
p.RisReportType = recData[i].RisReportType; //类型
p.CountPrintable = recData[i].CountPrintable;//可打印
p.CountPrinted = recData[i].CountPrinted; // 已打印
p.cb = new CheckBox();
list.Add(p);
// LVPatienList.Items.Add(p);
}
this.LVPatienList.ItemsSource = list;
}
else
{
MessageBox.Show("报告编号不存在!", "提示");
}

//放到listView中的数据类型
class listViewValue
{
public int Index { get; set; } //下标
public string PatientID { get; set; } //影像号
public string ImgPath { get; set; } //文件路径
public string RisReportType { get; set; } //文件类型
public int CountPrinted { get; set; } //打印完成张数
public int CountPrintable { get; set; } //可打印次数
}



界面显示结果:

最终希望点击全选按钮之后, 下面一条条数据都被选中,checkBox打钩。。
...全文
736 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
此后三年 2015-01-12
  • 打赏
  • 举报
回复
引用 1 楼 duanzi_peng 的回复:
使用 ObservableCollection 集合储存数据;根据“数据改变”通知与“双向绑定”方式来更新你的数据集合; 这种方式 根本不需要你 遍历行中的checkbox控件。 http://msdn.microsoft.com/zh-cn/magazine/dd252944.aspx 另,http://download.csdn.net/detail/duanzi_peng/8086935
搞不定,有没有更详细的资料
exception92 2015-01-12
  • 打赏
  • 举报
回复
使用 ObservableCollection 集合储存数据;根据“数据改变”通知与“双向绑定”方式来更新你的数据集合; 这种方式 根本不需要你 遍历行中的checkbox控件。 http://msdn.microsoft.com/zh-cn/magazine/dd252944.aspx 另,http://download.csdn.net/detail/duanzi_peng/8086935

110,530

社区成员

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

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

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