我正在尝试使用列表框显示是/否并绑定到我的Sql Server数据库中的位字段。
我的代码(特别是我的绑定)看起来是否正确?
使用它时,它可以用于创建带有Yes(true)语句或No(false)语句的记录,我甚至可以在数据库中将No(false)更新为Yes(true)....但我不能编辑是(真)到否(假)...如果我调试一切看起来不错,直到我点击我的RiaService,然后使用Sql Profiler,该字段没有更新。
哦是的,如果我将相同的代码绑定到varchar字段并排除转换器,那么一切正常。
public class ConvertBoolToYesNo : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value == null)
return null;
string outValue;
bool inValue = (bool)value;
outValue = inValue ? "Yes" : "No";
return outValue;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value == null)
return null;
bool? outValue;
string inValue = (string)value;
inValue = inValue.Trim();
if (inValue == "Yes")
{
outValue = true;
}
else
if (inValue == "No")
{
outValue = false;
}
else
{
return DependencyProperty.UnsetValue;
}
return outValue;
}
<ListBox x:Name="lbCounselExempt"
ItemsSource="{Binding Path=Choices}"
DisplayMemberPath="Name"
SelectedValue="{Binding Path=Model.CounselExempt, Mode=TwoWay,Converter={StaticResource ConvertBoolToYesNo}}"
SelectedValuePath="Name"
Style="{StaticResource RadioButtonList}" />
答案 0 :(得分:0)
如果您可以调试它并在调用RIA服务之前看到值已更改,那么它不是值转换器问题。将对象传输/序列化到服务器端的可能性更大。