IsChecked需要一個布爾值(true/false),但該表包含一個數字類型。您需要將ValueConverter添加到綁定語句中,該語句將數字值轉換爲布爾值。
檢查How to bind a boolean to a combobox in WPF的反例(將bool轉換爲int)。在你的情況下,ValueConverter應該是:
public class NumToBoolConverter: IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return ((int)value == 1);
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
return (bool)value ? 1 : 0;
}
}
}
UPDATE
這post有NumToBoolConverter也確實型和空檢查:
public class NumToBoolConverter : IValueConverter
{
#region IValueConverter Members
public object Convert(object value, Type targetType,
object parameter, System.Globalization.CultureInfo culture)
{
if (value!=null && value is int)
{
var val = (int)value;
return (val==0) ? false : true;
}
return null;
}
public object ConvertBack(object value, Type targetType,
object parameter, System.Globalization.CultureInfo culture)
{
if (value!=null && value is bool)
{
var val = (bool)value;
return val ? 1 : 0;
}
return null;
}
#endregion
}
您是否爲視圖設置了上下文?你在對象上實現了'INotifiyPropertyChanged'接口嗎? 'Active'是一個布爾類型嗎? – ChrisF
我假設你的意思是「_getting Active as zero and one_」,所以我也編輯了這一行。 – gideon
@ChrisF:我沒有使用INotifiyPropertyChanged接口 – Rocky