基于wpf中绑定bool属性的样式对象

时间:2015-12-23 22:54:37

标签: c# wpf xaml

如何在wpf中使用xaml在mvvm设置中更改我正在使用的对象的填充颜色。当绑定的属性设置为True时,我想将填充颜色更改为红色。

该属性称为IsRound。

如有必要,我会发布代码。我现在不在电脑上。

已更新

有人可以使用样式触发器显示如何执行此操作的示例吗? 并根据bind属性bool设置值?

2 个答案:

答案 0 :(得分:10)

首先,您不需要任何height:100%来完成您的工作。 Binding就够了。在下面的示例中,DataTriggerIsCyan的{​​{1}}属性。但boolean的{​​{1}}根本没有约束力。

ViewModel

但是如果你需要Binding,那么用户 benPearce 的解决方案就可以使用Background了。

答案 1 :(得分:1)

您需要在绑定上使用IValueConverter。

BackgroundColor="{Binding Path=IsRound, Converter={StaticResource BoolToFillColorConverter}}"

public class BoolToFillColorConverter: IValueConverter
{
  public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
      bool b;
      if (bool.TryParse(value, out b))
      {
        if (b) return Red
        else return Blue;
      }
      else
      {
        return SomeDefaultColour;
      }
  public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
  {
    return null;
  }
}