【发布时间】:2018-07-29 13:33:41
【问题描述】:
我有一个带有TabControl 的窗口。我有一个TabItem 我在哪里设置:
Visibility="{Binding IsVisible}
我也将它添加到窗口的 XAML 中:
<Window.InputBindings>
<KeyBinding Modifiers="Ctrl"
Key="H"
Command="{Binding ToggleHiddenTab}" />
</Window.InputBindings>
我将此方法添加到 ViewModel。
public void ToggleHiddenTab()
{
if (IsVisible == Visibility.Visible)
{
IsVisible = Visibility.Hidden;
NotifyOfPropertyChange(() => IsVisible);
}
else
{
IsVisible = Visibility.Visible;
NotifyOfPropertyChange(() => IsVisible);
}
}
还有完整的属性:
private Visibility _isVisible;
public Visibility IsVisible
{
get { return _isVisible; }
set {
_isVisible = value;
NotifyOfPropertyChange(() => IsVisible);
}
}
当我按下 CTRL+h 时,什么也没有发生。为了测试功能,我添加了一个测试按钮:
<Button x:Name="ToggleHiddenTab" Content="Test Visible"
Grid.Column="0" Margin="20,8,20,8">
<Button.Resources>
<Style TargetType="{x:Type Border}">
<Setter Property="CornerRadius" Value="5"/>
</Style>
</Button.Resources>
</Button>
当我单击按钮时,隐藏的选项卡会改变其可见性。为什么 ctrl+h 键不被接受?
---------------------- 编辑-------------- ------------------ 根据我添加的以下答案:
cal:Message.Attach="[Gesture Ctrl+H] = [ToggleHiddenTab]"
然后编辑器通过“cal:”的“namespace undefined”错误,快速谷歌搜索建议添加到窗口标签:
xmlns:cal="clr-namespace:Caliburn.Micro;assembly=Caliburn.Micro.Platform"
这仍然没有按建议工作。
【问题讨论】:
标签: wpf visibility key-bindings