Я пытаюсь использовать список для отображения Да / Нет и привязки к битовому полю в моей базе данных Sql Server.
Мой код (особенно моя привязка) выглядит правильно?
При использовании этого он работает для создания записи с оператором Yes (true) или No (false), я даже могу обновить Нет (false) до Yes (true) в базе данных .... но я не могу изменить Да (true) на Нет (False) ... если я отлаживаю, все выглядит хорошо, вплоть до тех пор, пока я не нажму 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}" />