Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 数据触发器不';不行?_C#_Wpf_Mvvm_Datatrigger - Fatal编程技术网

C# 数据触发器不';不行?

C# 数据触发器不';不行?,c#,wpf,mvvm,datatrigger,C#,Wpf,Mvvm,Datatrigger,我有个问题。我想在没有活动选项卡的地方隐藏TabControl。关于选项卡的信息保存在WidoczNosTabControl属性中(如果有任何选项卡WidoczNosTabControl=1,如果没有选项卡WidoczNosTabControl=0)。我尝试过使用DataTrigger,但它不起作用,我也不知道为什么。我是初学者,还在学习。这就是我请求你帮助的原因。这是MainWindowResources.xaml文件的一部分 <DataTemplate x:Key="Workspace

我有个问题。我想在没有活动选项卡的地方隐藏TabControl。关于选项卡的信息保存在WidoczNosTabControl属性中(如果有任何选项卡WidoczNosTabControl=1,如果没有选项卡WidoczNosTabControl=0)。我尝试过使用DataTrigger,但它不起作用,我也不知道为什么。我是初学者,还在学习。这就是我请求你帮助的原因。这是MainWindowResources.xaml文件的一部分

<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>


WidoczNostabControl在MainWindowViewModel.cs文件中声明和初始化。

我的第一个猜测是,您没有将ViewModel中的更改通知视图。确保在WidoczNostabControl设置为零时调用OnPropertyChanged


另一个原因可能是将“不透明度”设置为零不会产生所需的效果。您应该尝试将属性Visibly设置为false。可以找到有关如何执行此操作的信息。

需要更多信息:WidoczNostTableControl的类型是什么?WidoczNostTableControl的类型是int。但是,我尝试使用bool而不是int,但它也不起作用。您是否设置了DataContext?在调试模式下运行应用程序时,是否在输出窗口中看到任何绑定错误?好的,DataContext设置正确。更重要的是,在输出窗口中没有错误。嗯,我已经尝试手动将不透明度设置为0,它确实达到了预期的效果。当然,widocznostabControl的值设置为0。(如果我单击一个按钮,WidoczNostabControl将设置为1,如果我单击另一个按钮,WidoczNostabControl将设置为0。为了确保此属性的值,每次单击后都会显示具有WidoczNostabControl值的MessageBox)。但如果可以,请查看以下属性:public int-widocznosttabcontrol{get{return{u-widocznosttabcontrol;}set{if(value!=\u-widocznosttabcontrol)\u-widocznosttabcontrol=value;OnPropertyChanged(()=>widocznosttabcontrol)好吧,那我真的没有确切的答案。很抱歉