datatemplate中的用户控件所有对象都自动“共享”

时间:2012-02-21 18:53:52

标签: c# wpf user-controls datatemplate tabcontrol

所以我得到了一个绑定到列表的tabcontrol(有名称和代码)。这是完美的工作

<TabControl.ContentTemplate>
    <DataTemplate>
        <sp:ucercontroltest  DataContext="{Binding}"  strname="{Binding Path=name}" strcode="{Binding Path=code}"  />
    </DataTemplate>
</TabControl.ContentTemplate>

但是如果我在usercontroltest上添加一个Button(btntestbutton)和一个事件,那么如果单击该按钮,我希望禁用该按钮(btntestbutton.IsEnabled = false),然后在所有用户控件(标签)上禁用该按钮!如何防止它们彼此共享,如果我想要禁用1个usercontrol上的按钮,那么我就不会自动禁用所有这些按钮。

1 个答案:

答案 0 :(得分:2)

据我所知TabControls重用从ContentTemplate创建的控件,一种让选项卡具有唯一状态的方法是将按钮的IsEnabled属性绑定到每个选项卡的VM上的属性,然后状态将在tab-switch上调整。 (当然,您需要调整处理程序中的VM属性,而不是IsEnabled