在TabControl中绑定SelecteItem
本文关键字:SelecteItem 绑定 TabControl | 更新日期: 2023-09-27 18:11:06
是MVVM项目。我有一个列表框与TabControls里面的项目。tabitem对于每个TabControl都是不同的,并且是从ViewModel中绑定的:
<TabControl ItemsSource="{Binding Tabs}"
</TabControl >
标签:
public ObservableCollection<TabItem> Tabs
{ get { return tabs; }
set {
tabs = value;
value.CollectionChanged += delegate
{
OnPropertyChanged("Tabs");
};
OnPropertyChanged("Tabs"); } }
制表符只按以下方式填充一次:
Tabs = new ObservableCollection<TabItem>();
if (details.Image != null || !String.IsNullOrEmpty(details.Summary))
Tabs.Add(new TabItem() { Header = "General Info", Content = new GeneralInfo() { DataContext = ItemDetails } }); ........... 6 different types
这是我所拥有的一些信息。然后我动态地改变这个TabControls的DataContext's来模拟滚动。
ViewModel的所有信息都被绑定到控件中,但是TabControl有一个问题。头文件被绑定。但内容不会。所有标头被取消选中,tabcontrol内容区域为空。
我试图使TwoWayBinding上的selecteindex和SelectedItem,但它没有帮助....似乎selecteindex没有做任何可以选择TabItem的事情。SelectedItem不起作用,因为我认为它在每次数据上下文改变后都有新的引用。因为TabControl。ItemsSource重新绑定并创建新的tabitem。
也许有人解决了同样的问题,知道解决方法?
谢谢
我的问题已经解决了。问题是我使用控件作为DataContext:-表项列表- TabItems内容中的控件有一些过程,我不能完全理解。但是,想法是,当DataContext的变化,一个DataContext可以分配给2个不同的tabcontrol。因为UI控件不能同时属于两个父类,所以,绑定应该显示控件从DataContext在内容不起作用。并且不会抛出异常(因为它是绑定的)Smile |:)
因此,我从DataContext中删除所有UI对象,并添加对象模型。并创建UserControls显示这些对象模型的视图