1

我正在尝试在我自己的 ServiceControllerStatus 类型(在 System.ServiceProcess 中找到的枚举)中为名为“Status”的属性添加数据触发器。

我将此添加到 XAML:

xmlns:System="clr-namespace:System.ServiceProcess;assembly=System.ServiceProcess.dll"

我试图通过这样做来使用基于“状态”值的数据触发器:

<DataTrigger Binding="{Binding Path=Status}" >
    <DataTrigger.Value>                             
        <System:ServiceControllerStatus>Running</System:ServiceControllerStatus>
    </DataTrigger.Value>
    <Setter TargetName="border" Property="BorderBrush" Value="Green"/>
</DataTrigger>

但我收到一个错误“XML 命名空间 'clr-namespace:System.ServiceProcess;assembly=System.ServiceProcess.dll 中不存在标签 'ServiceControllerStatus'”

是否可以使用系统命名空间中定义的枚举,或者您必须只引用您自己的类中定义的枚举?

谢谢!

4

1 回答 1

3

您可以将枚举与{x:Static}表单一起使用。

<DataTrigger Binding="{Binding Path=Status}" 
             Value="{x:Static System:ServiceControllerStatus.Running}">
    <Setter TargetName="border" Property="BorderBrush" Value="Green"/>
</DataTrigger>

更新:

不要在汇编语句中使用 .dll 扩展名字符串。

assembly=System.ServiceProcess.dll->assembly=System.ServiceProcess

xmlns:System="clr-namespace:System.ServiceProcess;assembly=System.ServiceProcess"

PS:我英语不好。

于 2013-08-16T04:42:02.333 回答