Como exibir itens na exibição de grade de dados com base em muitas opções de seleção no wpf

Eu desenvolvi uma interface do usuário com a seguinte aparência:

Quero exibir os itens na grade de dados com base nas caixas de seleção selecionadas.

Cenário atual: No momento, com o meu código, os itens presentes no meu arquivo selecionado mais recente estão sendo exibidos. Por ex. se eu tiver selecionado a 1ª caixa de seleção, os itens presentes no primeiro arquivo serão exibidos corretamente e da mesma forma, se eu tiver selecionado a 2ª caixa de seleção, os itens do 2º arquivo serão exibidos.

Caso de uso necessário (Não é possível fazer isso) Se as duas caixas de seleção estiverem marcadas, os itens de ambos os arquivos deverão ser exibidos. Em segundo lugar, se eu desmarcar uma caixa de seleção, os itens desse arquivo não deverão ser exibidos. Quero dizer que os itens devem ser atualizados dinamicamente com base na seleção da caixa de seleção.

Minha tentativa

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);
}

Definições

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

Uma possível solução Faça um botão "OK". Depois de marcar as caixas de seleção, o usuário deve clicar no botão OK todas as vezes. Envie a caixa de seleção selecionada como lista e exiba os arquivos de acordo. (Eu implementei isso com sucesso, mas eu não quero esta solução, pois ela não é amigável).

Por favor, sugira-me como implementar"UseCase Obrigatório"

questionAnswers(0)

yourAnswerToTheQuestion