有一種情況,UI中的複選框需要綁定到數字參數 - 有效地,某些值使複選框爲「true」,否則爲「false」。WPF - ConverterParameter中的動態值
做到這一點最簡單的方法似乎是使用轉換器:
[ValueConversion(typeof(int), typeof(bool?))]
public class TypeToBoolConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (targetType != typeof(bool?))
throw new InvalidOperationException("The target must be a bool");
if((value < 3)
{
return true;
}
return false;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplmentedExpection();
}
}
然後在XAML:
<CheckBox IsChecked="{Binding Path=Type.TypeID, Converter={StaticResource TypeConverter}}" />
使用轉換時就像一個魅力哪些工作,但完全失敗時使用ConvertBack是因爲它需要知道數值是什麼(它取決於其他UI元素),然後才能知道要返回的數字 - 它需要訪問綁定的對象。
我認爲我可以用ConverterParameter做到這一點,但從外觀上看,您無法將值綁定到此屬性。
有沒有辦法擺脫這個混亂?
編輯:我解決了這個混亂的原始綁定,並逃避了它,因爲取消所有我想要做的是刪除該項目無論如何。但是我會留下這個地方,因爲這似乎是一個有效的問題,我對可能的解決方案感到好奇。
這可以有任何幫助嗎? http://stackoverflow.com/questions/397556/how-to-bind-radiobuttons-to-an-enum – Lucian