在我的一个WPF用户控件中,我有一个复选框。如果未选中该复选框,我想使用以下内容:
<vf:DataSeries Style="{StaticResource dataSeriesQuickLine}" ... >
但是,如果选中,我想使用以下内容:
<vf:DataSeries Style="{StaticResource dataSeriesLine}" ... >
有没有办法可以将Style绑定到复选框控件以使用我想要的样式?
感谢。
答案 0 :(得分:4)
是的,您可以绑定到IsChecked
并使用具有样式属性的Binding.Converter
,并根据输入值返回。
您可以使用通用布尔转换器:
<vc:BooleanConverter x:Key="StyleConverter"
TrueValue="{StaticResource Style1}"
FalseValue="{StaticResource Style2}"/>
public class BooleanConverter : IValueConverter
{
public object TrueValue { get; set; }
public object FalseValue { get; set; }
// In Convert cast the value to bool and return the right property
}
答案 1 :(得分:1)
将以下命名空间添加到xaml: 的xmlns:I = “http://schemas.microsoft.com/expression/2010/interactivity” 的xmlns:EI = “http://schemas.microsoft.com/expression/2010/interactions”
将控件的默认样式设置为Style2。然后 为您的控件指定一个名称 在xaml中的某处添加以下触发器和操作(例如,在关闭vf:DataSeries标记之前):
<i:Interaction.Triggers>
<ei:DataTrigger
Binding="{Binding ElementName=yourCheckboxName, Path=IsChecked}"
Value="True">
<ei:ChangePropertyAction TargetName="yourControlName"
PropertyName="Style"
Value="{StaticResource Style1}"/>
</ei:DataTrigger>
</i:Interaction.Triggers>