将一个tabitem的子控件绑定到另一个对象

时间:2013-02-07 11:58:29

标签: c# wpf mvvm tabitem collectionview

在我的MVVM应用程序中,我的MainViewModel中有一个名为Products的对象; 我还创建了CollectionView以启用Products导航。我需要的是显示CollectionView.CurrentPosition

MainViewModel.cs

    private CollectionView collectionView;

    public CollectionView CollectionView
    {
        get { return this.collectionView; }
        set
        {
            this.collectionView = value;
            OnPropertyChanged(() => CollectionView);
        }
    }

    public MainViewModel()
    {
        Products = fillProducts();
        CollectionView = (CollectionView) CollectionViewSource.GetDefaultView(Products.Items);
    }

现在显示Products中的项目:

<TabItem x:Name="tabProductsView"
                     DataContext="{Binding Products.Items}"
                     Header="View Products">
    <textBlock Text="{Binding ProductID}" />
    <textBlock Text="{Binding ProductDesc}" />
    <textBlock Text="{Binding ProductName}" />
...
<TextBlock name="CurrentItemPosition" Text ="{Binding CollectionView.CurrentPosition}"/>

</tabItem>

现在,绑定到Products.Items可能正常工作,我可以浏览我的产品并查看详细信息。但是查看CollectionView.CurrentPosition无法正常工作(没有显示任何内容),因为我已经将DataContextTabItem设置为Products.Items。同时设置DataContext的{​​{1}}无效。

有关如何在CurrentItemPosition TextBlock下显示CollectionView.CurrentPosition的任何想法?

换句话说,我如何从同一个'TabItem中的TabItem绑定到另一个Object

提前致谢。

1 个答案:

答案 0 :(得分:0)

好的,我试图直接绑定到CollectionView本身,现在一切正常......