我有以下xaml代码;
<TabControl Grid.Colum="2" prism:RegionManager.RegionName="MainRegion">
<TabControl.ItemContainerStyle>
<Style TargetType="TabItem">
<Setter Property="Header" Value="{Binding Title}"/>
<Setter Property="IsEnabled" Value="{Binding IsEnabled}"/>
</Style>
</TabControl.ItemContainerStyle>
</TabControl>
在我的CodeBegind文件(.xalm.cs)中,我将viewmodel绑定为datacontext(使用MVVM),我的标题设置如下;
public string title { get { return "MyTabName"; } }
在我的viewmodel中,我设置了以下属性;
private bool isEnabled
public bool IsEnabled
{
get { return this.isEnabled; }
set
{
this.isEnabled = value;
this.RaisePropertyChanged();
}
}
问题:问题是绑定无效。我知道绑定设置正确,因为我在同一页面上的同一个绑定上有一个按钮; IsEnabled="{Binding IsEnabled}"
,所以我认为我的问题与<Setter/>
仅在生成视图时被调用一次有关,但因为TabControl有x个选项卡,具体取决于从中加载了多少视图prism:RegionManager,它必须是动态的,不能设置为单独的TabItem
。
问题:我的具体问题是,如何使用上述绑定为所有IsEnabled
设置TabItem
属性?
另外:我试过
<Setter Property="IsEnabled" Value="False"/>
这确实禁用了TabItem
,这就是为什么我确信<Setter/>
仅在第一次生成视图时被调用,而问题不在于绑定。< / p>