使用静态可见性枚举作为命令参数

Mos*_*ico 4 c# wpf enums xaml

好吧,所以,这个问题似乎很简单,但不知怎的,我无法弄明白,反正我会问它...

我想用Visibility在这样CommandParameterKeyBinding(支付注意<!--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>
Run Code Online (Sandbox Code Playgroud)

但是,似乎:

名称"Visibility"在名称空间"clr-namespace:System; assembly = System"中不存在

Visibility在我的VM中寻找并且它位于System.Windows,但我在XAML上找不到,上面(System)是我发现的最接近的一个,结果并不好.

任何人都知道在XAML中使用什么命名空间?(虽然System.Windows在XAML中没有列出,如果结果我没有引用它,我的VM也不能正确使用它?)

或者,是否有必要ObjectDataProvider仅用于System Enum?(因为ObjectDataProvider如果它是我自己的自定义枚举,我可以无缝地执行此操作)

PS MSDN:http://msdn.microsoft.com/en-us/library/system.windows.uielement.visibility%28v=vs.95%29.aspx

Tho*_*que 5

标准WPF名称空间映射到默认的XML名称空间(http://schemas.microsoft.com/winfx/2006/xaml/presentation),因此您不需要任何前缀:

CommandParameter="{x:Static Visibility.Visible}"
Run Code Online (Sandbox Code Playgroud)