Wpf 从组合框selecteditem中显示datagrid详细信息

Wpf 从组合框selecteditem中显示datagrid详细信息,wpf,xaml,wpf-controls,wpfdatagrid,Wpf,Xaml,Wpf Controls,Wpfdatagrid,我的应用程序中有一个组合框和一个数据网格。datagrid的itemsSource来自其collectionViewSource,combobox中有三个作为警告/错误/异常的combobox Item,如下图所示。 选择相应的ComboxBoxitem时,如何在数据网格上显示selecteditem行详细信息 这就是我尝试过的。 组合框-XAML <ComboBox SelectedValuePath="{Binding ElementName=dataGrid1,Path=Sele

我的应用程序中有一个
组合框
和一个
数据网格
。datagrid的itemsSource来自其collectionViewSource,combobox中有三个作为警告/错误/异常的
combobox Item
,如下图所示。

选择相应的
ComboxBoxitem
时,如何在数据网格上显示selecteditem行详细信息

这就是我尝试过的。 组合框-XAML

<ComboBox 
SelectedValuePath="{Binding ElementName=dataGrid1,Path=SelectedItem.Type,Mode=OneWay}"
Grid.Column="1" Height="32" HorizontalAlignment="Left" Name="comboBox1" >
<ComboBoxItem Content="Warning"/>
<ComboBoxItem Content="Error"/>
<ComboBoxItem Content="Exception"/>
</ComboBox>

datagrid的XAML

<DataGrid AutoGenerateColumns="False" 
IsSynchronizedWithCurrentItem="True" ItemsSource="{Binding}" Name="dataGrid1">


是否可以通过XAML跳过后面的代码来实现这一点?如果没有,也欢迎其他建议。

您可以使用DataGrid的过滤器,

有关更多详细信息,请参阅此处:

这是一个可能对您有所帮助的代码示例。它显示一个集合视图源,带有一个筛选器

XAML

    <Window x:Class="Ejemplos_EnlaceADatos.Figura5_12"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:cmod="clr-namespace:System.ComponentModel;assembly=WindowsBase"
    xmlns:cine="clr-namespace:Ejemplos_EnlaceADatos.Cine"
    Title="Lista de Films" Height="200" Width="300"
>
  <Window.Resources>
    <CollectionViewSource x:Key="films" Source="{x:Static cine:Filmes.Films}" Filter="Filter_Film">
      <CollectionViewSource.SortDescriptions>
        <cmod:SortDescription PropertyName="Título"/>
      </CollectionViewSource.SortDescriptions>
    </CollectionViewSource>
  </Window.Resources>
  <ScrollViewer>
    <StackPanel TextBlock.FontFamily="Segoe UI" Margin="6">
      <TextBlock FontSize="16" FontWeight="Bold" Foreground="Navy">
        Films:
      </TextBlock>
      <ItemsControl ItemsSource="{Binding Source={StaticResource films}}"/>
    </StackPanel>
  </ScrollViewer>
</Window>
然后像这样过滤:

之前

之后


这只是一个筛选的示例,但它是否具有常规的items控件。

谢谢,我想从我的组合框selecteditem中筛选我的datagrid。是否有机会拒绝隐藏的代码?也许您可以使用
CDATA
在XAML中编写代码,但我不知道如何使用它,我建议您像在他的示例中那样使用普通代码不太可能。避免代码隐藏只是一种选择。。但是如果有一种在代码背后实现的方法,我可以使用它。你使用任何模式,例如mvvm吗?没有。。我使用的是实体框架。但要解释一下-我的模型是我的EF,视图,而我的ViewModel只是后面的代码(使用实体访问我的模型)
using System.Windows;
using System.Windows.Data;
using Ejemplos_EnlaceADatos.Cine;

namespace Ejemplos_EnlaceADatos {
  public partial class Figura5_12 : Window {

    public Figura5_12() {
      InitializeComponent();
    }
    void Filter_Film(object sender, FilterEventArgs e) {
      e.Accepted = (e.Item is Film) && (((Film)e.Item).Género == Género.Mafia);
    }
  }
}