2013-03-22 112 views
1

我在我的应用程序中有comboboxdatagrid。 datagrid从其collectionViewSource中有它的itemsSource,并且在组合框中有三个ComboBoxItem作为警告/错误/异常,如下图所示。 enter image description here显示来自组合框selecteditem的数据网格细节

如何在选择相应的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来实现这一跳过后面的代码?如果不是其他建议也是最受欢迎的。

+0

有没有机会拒绝背后的代码?也许你在使用'CDATA'在你的XAML中编写你的代码,但我不知道如何使用这个,我会推荐使用像[RaulOtaño]这样的普通代码(http://stackoverflow.com/a/15579909/1993545 )在他的例子 – WiiMaxx 2013-03-25 10:12:26

+0

中没有。以避免代码后面只是一个选项..但如果有一种方法来实现代码后面我可以使用它.. – user1221765 2013-03-25 10:13:45

+0

你是否使用任何模式,例如MVVM? – WiiMaxx 2013-03-25 10:18:47

回答

2

这是一个代码示例,可以帮助你。它显示了一个集合查看源文件,带有过滤器...

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> 

代码隐藏

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

和过滤这样的:

以前

enter image description here

enter image description here

它仅仅是滤波的示例,但是它与常规项的控制。