我有一個邊框,我想根據布爾變量改變它的顏色。我用link here來實現Boolean
到Color
轉換器。根據布爾值更改邊框顏色
的代碼看起來是這樣的:
的XAML:
<Border Width="45"
Height="45" CornerRadius="5"
Background="{Binding Path=LivenessActive, Converter={StaticResource BrushColorConverter}}" />
在背景LivenessActive變量:
public bool LivenessActive
{
get { return _livenessActive; }
set
{
_livenessActive = value;
OnPropertyChanged("LivenessActive");
}
}
凡類有一個繼承了INotifyPropertyChanged
並已實施了ev ENT。
的BrushColorConverter.cs:
public class BrushColorConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if ((bool)value)
{
{
return new SolidColorBrush(Colors.GreenYellow);
}
}
return new SolidColorBrush(Colors.DarkGray);
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
但我不能開除甚至BrushColorConverter
。我做錯了什麼?
第二:如果我想從另一個窗口使用它呢?
<Border Width="45" Height="45" CornerRadius="5"
Background="{Binding Path=LivenessActive, Converter={StaticResource BrushColorConverter},
RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type view:MyWindowName}}}" />
我使用相同的代碼,它不是找到它。
我在這段代碼中看不出任何錯誤。 LivenessActive在哪裏定義? DataContext是否相應地設置? – dkozl 2014-11-03 11:47:56
True ... DataContext !!我怎麼能把它忘了......請發表你的回答,這樣我就可以讓它升級... – Sonhja 2014-11-03 11:50:11
如果我想從外部窗口使用它,那麼怎麼辦?看我的編輯。 – Sonhja 2014-11-03 11:54:32