在运行时禁用我的TabItem?

时间:2016-09-16 13:08:37

标签: c# wpf xaml mvvm

我有以下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>

0 个答案:

没有答案