如何在wpf中使用xaml在mvvm设置中更改我正在使用的对象的填充颜色。当绑定的属性设置为True时,我想将填充颜色更改为红色。
该属性称为IsRound。
如有必要,我会发布代码。我现在不在电脑上。
已更新
有人可以使用样式触发器显示如何执行此操作的示例吗? 并根据bind属性bool设置值?
答案 0 :(得分:10)
首先,您不需要任何height:100%
来完成您的工作。 Binding
就够了。在下面的示例中,DataTrigger
是IsCyan
的{{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;
}
}