Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Wpf嵌套数据绑定选项卡控件_C#_.net_Wpf_Xaml - Fatal编程技术网

C# Wpf嵌套数据绑定选项卡控件

C# Wpf嵌套数据绑定选项卡控件,c#,.net,wpf,xaml,C#,.net,Wpf,Xaml,我是WPF的新手,我正在尝试获取一系列嵌套的TabControls来过滤一些数据,但是嵌套的tabs似乎从来都不想出现 <TabControl ItemsSource="{Binding Years}" SelectedItem="{Binding SelectedYear, UpdateSourceTrigger=PropertyChanged}"> <TabControl.ContentTemplate> <DataTemplate>

我是WPF的新手,我正在尝试获取一系列嵌套的TabControls来过滤一些数据,但是嵌套的tabs似乎从来都不想出现

<TabControl ItemsSource="{Binding Years}" SelectedItem="{Binding SelectedYear, UpdateSourceTrigger=PropertyChanged}">
    <TabControl.ContentTemplate>
        <DataTemplate>
            <TabControl ItemsSource="{Binding Customers}" SelectedItem="{Binding SelectedCustomer, UpdateSourceTrigger=PropertyChanged}">
                 <TabControl.ContentTemplate>
                      <DataTemplate>
                           <!-- Data filtered by year and customer here -->
                     </DataTemplate>
                 </TabControl.ContentTemplate>
            </TabControl>
        </DataTemplate>
    </TabControl.ContentTemplate>
</TabControl>
我的计划是对集合使用ICollectionView,并使用SelectedYear和SelectedCustomer值应用过滤器:

ForecastsNationalCollectionView.Filter =
            m => ((Forecast)m).Year == int.Parse(SelectedYear) && ((Forecast)m).Customer == SelectedNationalCustomer;

显示您的ViewModel。除非
Years
集合包含具有
Customers
属性的类的项,否则这将不起作用。如果您的ViewModel是“平面”的,那么您必须使用
RelativeSource
来实现此功能。@HighCore现在的“年份”和“客户”集合只是字符串的集合,这是第一次尝试获取我想要的选项卡标题。是否有一种方法可以绑定到我的ObservableCollection实际对象,这是为了过滤,但仅显示年份和客户的不同值,用于TabItem标题目的?相反,我只需要使用相对资源绑定查找DataTemplate内内容的DataContext。。。那会容易得多。你能发布相关的viewmodel代码吗?@HighCore更新了一些viewmodelcode@HighCore我明白你现在对RelativeSource的意思了。我的DataTemplate中可用的DataContext基本上是“Year”对象,它只是一个字符串。通过使用RelativeSource将DataContext返回到ViewModel,我能够像预期的那样绑定到集合。再说一次,我对WPF和XAML一般来说都是新手,但是有没有办法让它不那么冗长呢?似乎很多标记只是为了绑定到同一个东西几次
ForecastsNational.Select(x => x.Customer).OrderBy(x => x).Distinct()
ForecastsNationalCollectionView.Filter =
            m => ((Forecast)m).Year == int.Parse(SelectedYear) && ((Forecast)m).Customer == SelectedNationalCustomer;