访问WPF数据模板中的系统枚举

本文关键字:系统 枚举 WPF 数据 访问 | 更新日期: 2023-09-27 18:27:48

我正试图在我自己的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>

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

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

谢谢!

访问WPF数据模板中的系统枚举

您可以将enum与{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"

附言:我英语不好。