저는 WPF로 C# 프로그래밍을 처음 접했을뿐만 아니라 지금은 필요하지 않지만 지금은 필요합니다. Enum이 변경 될 때마다 변환기를 발생시키는 OnPropertyChanged 메서드를 첨부 한 열거 형을 바인딩해야합니다.propertychanged 처리기로 enum을 바인딩하지 않고 바인딩합니다.
private WindowState windowstate;
public enum WindowState
{
INITIAL = 0,
LANGUAGE = 1,
SENSOR = 2,
PARAMETERS = 3,
LEGAL = 4,
PRIVACY = 5,
ABOUT = 6,
MANUAL = 7
}
public WindowState State
{
get { return windowstate; }
set { windowstate = value; OnPropertyChanged("State"); }
}
그리고 내가이있어 열거 결합하는 XAML에 :
Color="{Binding State, Converter={StaticResource ButtonMenuColor}, ConverterParameter=language, ElementName=userControl}"
내가 원하는 것은이의 색상을 변경하는 방법을 내가 열거 다음 코드를 가지고 열거 형의 값에 따라 버튼을 클릭하십시오. 이 방법으로 만들 수 있습니까 또는 WPF, 어떤 이유로,이 지원하지 않습니다?
이 컨버터 코드 :
class ButtonMenuColor : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
Lynx.Windows.Herramientas.WindowState state = (Lynx.Windows.Herramientas.WindowState)value;
string param = parameter as string;
if (state.ToString().ToLower() == param)
return Application.Current.FindResource("white") as SolidColorBrush;
return Application.Current.FindResource("buttonmenu_color") as SolidColorBrush;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
당신이 변환 코드를 게시 할 수 있습니까? –
변환기 코드가 추가되었습니다. – kelirkenan
변환기에 중단 점을 추가하여 충돌이 발생했는지 또는 색상이 변경되지 않았는지 확인 했습니까? –