在TabControl中设置DataContext

时间:2012-10-08 16:31:58

标签: c# wpf mvvm tabcontrol datacontext

我有一个TabControl,它绑定到一个可观察的Employees集合,如此

<TabControl ItemsSource="{Binding Employees}">
            <TabControl.ContentTemplate>
                <DataTemplate>
                    <views:EmployeeView/>
                </DataTemplate>
            </TabControl.ContentTemplate>
        </TabControl>

我已将DataTemplate设置为员工视图。假设我的Employees系列中有两名员工。我得到了正确的标签出现。在我的EmployeeView中,我有一个复选框。如果我不绑定此复选框,则会在所有选项卡上进行检查。我不确定我是在跟踪为什么会发生这种情况。我想我的问题是我如何在EmployeeView上设置DataContext,以便tabcontrols选项卡可以独立运行。

1 个答案:

答案 0 :(得分:1)

问题可能是当TabControl是数据绑定时,它'虚拟化'其TabItems,卸载然后在选择更改时重新加载和重新绑定它们的内容。

因此,您可以尝试将IsChecked中CheckBox的View绑定到其ViewModel的属性,或者使用以下行为禁用TabItem虚拟化这里的那个:http://www.codeproject.com/Articles/460989/WPF-TabControl-Turning-Off-Tab-Virtualization

我最近自己使用了上述行为,因为我对TabControl的默认数据绑定行为有类似的问题。