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,但这是客户的要求,即背后应该有最少的代码:(我正在尝试使用样式。我在一个资源文件中定义了一个样式,并在文本块中调用该样式,但这也不起作用。(这在我之前的项目中已经起作用了)