ListBox с IValueConverter of Bool To YesNo ... почти работает, но не совсем - PullRequest
0 голосов
/ 29 ноября 2011

Я пытаюсь использовать список для отображения Да / Нет и привязки к битовому полю в моей базе данных 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}" /> 

1 Ответ

0 голосов
/ 29 ноября 2011

Если вы можете отладить его и увидеть, что значение изменяется прямо перед вызовом службы RIA, это не проблема преобразователя значений.Скорее всего, это что-то нечеткое с транспортировкой / сериализацией объекта на стороне сервера.

...