C# 在上下文菜单中启用/禁用文本块

C# 在上下文菜单中启用/禁用文本块,c#,wpf,xaml,contextmenu,menuitem,C#,Wpf,Xaml,Contextmenu,Menuitem,我有一个ContextMenu,里面有一个MenuItem。MenuItem是一个TextBlock,如下代码所示: <ContextMenu> <Border> <MenuItem> <MenuItem.Header> <TextBlock Text="ACK" HorizontalAlignment="Right"/> </

我有一个
ContextMenu
,里面有一个
MenuItem
MenuItem
是一个
TextBlock
,如下代码所示:

<ContextMenu>
    <Border>
        <MenuItem>
            <MenuItem.Header>
                <TextBlock Text="ACK" HorizontalAlignment="Right"/>
            </MenuItem.Header>
        </MenuItem>
    </Border>
</ContextMenu>

如何在运行时启用或禁用它。如果我单击它一次,它应该被禁用


PS:我不想为此编写代码。我需要从XAML中实现它,因为这是在
用户控件中完成的,并且将在许多应用程序中使用。

使用触发器如何?有一种污名,即代码隐藏是不好的,这是不真实的。在代码隐藏中查看代码没有什么错。您的
UserControl
将位于库中(大概),该库可以包括代码隐藏代码以及控件的XAML。您将在“许多应用程序”中使用它并不意味着不应该或不能使用代码隐藏。至于具体的问题,您的
TextBlock.IsEnabled
属性应该绑定到某个视图模型,您可以在该视图模型中控制状态(即在需要时设置为
false
,例如使用菜单项时)。基本需求有许多可能的解决方案;请尝试一些东西,提供一个展示您尝试过的东西,并精确解释该代码的作用以及与您想要的不同之处。你们是正确的@MikeEason和Peter,但这是客户的要求,即背后应该有最少的代码:(我正在尝试使用样式。我在一个资源文件中定义了一个样式,并在文本块中调用该样式,但这也不起作用。(这在我之前的项目中已经起作用了)