Wpf嵌套数据绑定TabControl

时间:2015-10-27 15:15:46

标签: c# .net wpf xaml

我是WPF的新手,我试图获得一系列嵌套的TabControls来过滤一些数据,但嵌套的标签似乎永远不会出现。

<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>

如果我在第一个DataTemplate中使用没有数据绑定的已定义TabItems,它们就没有问题。是否有一个技巧让嵌套的数据绑定选项卡控件工作?我一般都是以一种非常愚蠢的方式做这件事吗?

编辑: 我的ViewModel中的数据意味着过滤是一个ObservableCollection of Forecast对象:

public ObservableCollection<Forecast> ForecastsNational
    {
        get { return _forecastsNational ?? (_forecastsNational = new ObservableCollection<Forecast>()); }
        set { Set(() => ForecastsNational, ref _forecastsNational, value); }
    }

相关属性为:     DateTime ForecastDate,     字符串CustomerName,     int数量,     十进制数量

目前,我的“年”和“客户”系列只是通过从ForecastsNational系列中选择不同的值来填充:

ForecastsNational.Select(x => x.Customer).OrderBy(x => x).Distinct()

我的计划是在集合上使用ICollectionView并使用SelectedYear和SelectedCustomer值应用过滤器:

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

0 个答案:

没有答案