访问WPF datatemplates中的系统枚举

时间:2013-08-16 02:35:50

标签: c# wpf visual-studio xaml datatemplate

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

我将此添加到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”

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

谢谢!

1 个答案:

答案 0 :(得分: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 - &gt; assembly=System.ServiceProcess

xmlns:System="clr-namespace:System.ServiceProcess;assembly=System.ServiceProcess"
PS:我不擅长英语。