如何根据wpf中的多个复选框选择在数据网格视图中显示项目

时间:2016-06-08 07:39:40

标签: c# wpf datagrid

我开发了一个UI,如下所示: enter image description here

我想在所选复选框的基础上显示数据网格中的项目。

当前情景: 现在,我的代码总是会显示我最新复选框选中文件中的项目。对于例如如果我选择了第一个复选框,则第一个文件中的项目会正确显示,同样如果我选择了第二个复选框,则会显示第二个文件中的项目。

必填用例(不能这样做) 如果同时选中了两个复选框,则应显示两个文件中的项目。其次,如果我取消选中一个复选框,则不应显示该文件中的项目。我的意思是应该根据复选框选择动态更新项目。

我的尝试

FrameworkElementFactory FF = new FrameworkElementFactory(typeof(CheckBox));

FF.SetBinding(CheckBox.BindingGroupProperty, new Binding("Index"));
FF.SetBinding(CheckBox.IsCheckedProperty, new Binding("FileSelected") { UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged });
FF.SetValue(FrameworkElement.HorizontalAlignmentProperty, HorizontalAlignment.Center);
for (int i = 0; i < Resultnew.Count; i++)
{
    var Dgrh = new DataGridRowHelper() { File_Name = lb1.Content, Index = i };
    Dgrh.ThrowFileSlctdEvent += (sender1, args) => {items = PopulateVariables(Resultnew[Dgrh.File_Name.ToString()]); DataGrid.ItemsSource = items; };
    Dgrh.ThrowFileNotSlctdEvent += (sender2, args) => { };
    A2lFilesPopulateList.Items.Add(Dgrh);
}

解释

ObservableCollection<DataGridRowHelper> items = new ObservableCollection<DataGridRowHelper>();
private Dictionary<String, ParsedResult> Resultnew = new Dictionary<String, ParsedResult>();
public delegate void EventHandler(object sender, EventArgs args); //Defined in DataGridrowhelperClass
public event EventHandler ThrowFileSlctdEvent = delegate { }; //Defined in DataGridrowhelperClass
    public event EventHandler ThrowFileNotSlctdEvent = delegate { }; //Defined in DataGridrowhelperClass

一种可能的解决方案 按“确定”按钮。选择复选框后,用户每次都必须单击“确定”按钮。将选中的复选框作为列表发送,并相应地显示文件。 (我已经成功实现了这个,但我不想要这个解决方案,因为它不是用户友好的。)

请建议我如何实施“必需的UseCase”

0 个答案:

没有答案