2013-11-20 39 views
0

我有一个问题。我想隐藏TabControl,没有活动标签。有关选项卡的信息保存在WidocznoscTabControl属性中(如果有任何选项卡WidocznoscTabControl = 1,如果没有选项卡WidocznoscTabControl = 0)。我试图使用DataTrigger,但它不起作用,我不知道为什么。我是初学者,我仍然在学习。这就是为什么我要求你帮忙。这是MainWindowResources.xaml的一部分文件Datatrigger不起作用?

<DataTemplate x:Key="WorkspacesTemplate"> 
    <TabControl 
     x:Name="Tabs" 
     IsSynchronizedWithCurrentItem="True" 
     ItemsSource="{Binding}" 
     ItemTemplate="{StaticResource ClosableTabItemTemplate}" 
     Margin="4" 
     /> 

    <DataTemplate.Triggers> 
      <DataTrigger Binding="{Binding Path=WidocznoscTabControl}" Value="0"> 
      <Setter TargetName="Tabs" Property="Opacity" Value="0"/> 
      </DataTrigger> 
     </DataTemplate.Triggers> 
</DataTemplate> 

WidocznoscTabControl被declarated和MainWindowViewModel.cs文件初始化。

+0

需要更多信息:WidocznoscTabControl的类型是什么? – inside

+0

WidocznoscTabControl的类型是int。但是,我试图使用布尔而不是int,它不工作。 – dzeju555

+0

你在设置DataContext好吗?在调试模式下运行应用程序时,是否在输出窗口中看到任何绑定错误? – sthotakura

回答

0

我的第一个猜测是,你不通知你ViewModel的变化视图。确保在WidocznoscTabControl设置为零时调用OnPropertyChanged。

另一个原因可能是将不透明度设置为零不会产生预期的效果。您应该尝试将属性Visiblity设置为false。有关如何做到这一点的信息可以找到here

+0

嗯,我已经尝试将Opacity手动设置为0,并且确实具有所需的效果。当然,WidocznoscTabControl的值被设置为0.(如果我点击一个按钮,WidocznoscTabControl设置为1,如果我点击另一个WidocznoscTabControl设置为0.为了确定此属性的值,在每次单击MessageBox显示WidocznoscTabControl的值)。但是如果可以的话,看看这个属性: – dzeju555

+0

public int WidocznoscTabControl { get { return _WidocznoscTabControl; } set { if(value!= _WidocznoscTabControl)_WidocznoscTabControl = value; OnPropertyChanged(()=> WidocznoscTabControl); } } – dzeju555

+0

好的,那我真的没有明确的答案。抱歉。 – hschne