1
我使用Ivalueconverter使用xml數據源將字符串轉換爲布爾值。這工作得很好,直到我手動更改像這樣的XML:WPF Ivalueconverter空值
myelement.InnerXml = "true"
然後我收到出現FormatException說字符串是不是一個有效的布爾值,我檢查去到我的轉換價值和它等於「」
這裏是我的轉換器:
[ValueConversion(typeof(string), typeof(bool))]
public class StringToBoolConverter : IValueConverter {
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
return TypeDescriptor.GetConverter(typeof(bool)).ConvertFrom(value); }
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
return value.ToString();
}
}
我綁定的轉換器,像這樣: <local:StringToBoolConverter x:Key="stringbool"></local:StringToBoolConverter>
而在結合應用它: IsChecked="{Binding Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, XPath=myelement, Converter={StaticResource stringbool}}"
我不知道,結合自身好吧,這只是看起來像手動編輯的xml不會傳輸到Ivalueconverter ... – internetmw 2010-10-31 18:33:38
檢查類myelement的InnerXml屬性是否通知其更改(接口INotifyPropertyChanged並在set-method中引發事件)。 – vorrtex 2010-11-01 14:52:41