Chr*_*eis 2 c# wpf enums xaml styles
我有这样的对象集合:
public enum ObjectType
{
Type1,
Type2
}
public class MyObject
{
...
public ObjectType ObjType;
public string Header;
...
}
Run Code Online (Sandbox Code Playgroud)
我从示例应用程序获得的样式之一是:
<Style TargetType="{x:Type inf:MyObject}">
<Setter Property="Header" Value="{Binding Header}" />
</Style>
Run Code Online (Sandbox Code Playgroud)
如何创建受ObjectType枚举字段约束的单独样式?IE对于ObjType设置为Type1 vs Type2的MyObject具有单独的样式?
我的字段确实实现了INotifyPropertyChanged,这只是一些简单的示例代码
谢谢
我可能会通过触发器执行此操作:
<Style TargetType="{x:Type inf:MyObject}">
<Setter Property="Header" Value="{Binding Header}" />
<Style.Triggers>
<DataTrigger Binding="{Binding ObjType}" Value="Type1">
<!-- A bunch of setters -->
</DataTrigger>
<DataTrigger Binding="{Binding ObjType}" Value="Type2">
<!-- Another bunch of setters -->
</DataTrigger>
</Style.Triggers>
</Style>
Run Code Online (Sandbox Code Playgroud)
分离可能是不可能的。
好了,您可以创建单独的样式,但是您需要使用ResourceKey手动应用它们:
<Style x:Key="Type1Style" TargetType="{x:Type inf:MyObject}"
BasedOn="{StaticResource {x:Type inf:MyObject}}">
<!-- Setters for type1 -->
</Style>
<Style x:Key="Type2Style" TargetType="{x:Type inf:MyObject}"
BasedOn="{StaticResource {x:Type inf:MyObject}}">
<!-- Setters for type2 -->
</Style>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1875 次 |
| 最近记录: |