好吧,所以,这个问题看起来很简单,但不知何故我无法解决这个问题,无论如何我都会问它......
我想在Visibility
的{{1}} CommandParameter
中使用KeyBinding
(注意<!--THIS LINE-->
部分):
<Window ...
xmlns:sys="clr-namespace:System;assembly=System"
...>
...
<Window.InputBindings>
</Window.InputBindings>
<Grid DataContext="{StaticResource MainWindowVM}">
...
<ScrollViewer Grid.Column="0" Grid.Row="1" Background="Gray">
<ScrollViewer.InputBindings>
...
<!--THIS LINE--><KeyBinding Key="OemOpenBrackets" Command="{Binding EditLeftBarLineVisibilityCommand}" CommandParameter="{x:Static sys:Visibility.Visible}"/>
<!--THIS LINE--><KeyBinding Key="OemCloseBrackets" Command="{Binding EditRightBarLineVisibilityCommand}" CommandParameter="{x:Static sys:Visibility.Visible}"/>
</ScrollViewer.InputBindings>
...
</ScrollViewer>
</Grid>
但是,似乎:
名称&#34;可见性&#34;命名空间中不存在&#34; clr-namespace:System; assembly = System&#34;
我在我的虚拟机中查找了Visibility
,它位于System.Windows
,但我无法在XAML上找到,上面(System
)是我发现的最接近的一个,结果并不好。
任何人都知道在XAML中使用什么命名空间? (虽然列出的XAML中没有System.Windows
,如果结果我没有引用它,我的VM也不能正确使用它?)
或者,是否有必要仅对ObjectDataProvider
System
使用Enum
? (因为我可以在没有ObjectDataProvider
的情况下无缝地执行此操作,如果它是我自己的自定义枚举)
P.S。 MSDN:http://msdn.microsoft.com/en-us/library/system.windows.uielement.visibility%28v=vs.95%29.aspx
答案 0 :(得分:5)
标准WPF名称空间映射到默认XML名称空间(http://schemas.microsoft.com/winfx/2006/xaml/presentation
),因此您不需要任何前缀:
CommandParameter="{x:Static Visibility.Visible}"