Есть ли простое решение для отображения Да и Нет в комбинированном окне silverlight и привязке к базе данных? - PullRequest
3 голосов
/ 25 февраля 2010

В моей базе данных определен бит 0 = нет, 1 = да. У меня есть комбинация silverlight со значениями «Да» и «Нет». Как я могу связать свое битовое значение с комбо?

1 Ответ

5 голосов
/ 26 февраля 2010

Вы не указываете, какой механизм доступа к данным вы используете, но типичные инструменты будут представлять битовое поле как логическое свойство. Самый простой подход - использовать конвертер значений.

Вот основная идея (может потребоваться более защитное кодирование): -

public class BoolToStringConverter : IValueConverter
{
    public String FalseString { get; set; }
    public String TrueString { get; set; }

    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        if (value == null)
            return FalseString;
        else
            return (bool)value ? TrueString : FalseString;
    }

    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        return value.Equals(TrueString);
    }
}

Теперь в вашем приложении вы можете добавить его к свойству Resources (обычно это App.xaml)

<Resources>
   <local:BoolToStringConverter x:Key="CvtYesNo" FalseString="No" TrueString="Yes" />
</Resources>

Теперь вы бы создали свой комбинированный список следующим образом: -

<ComboBox SelectedItem="{Binding YourBitField, Converter={StaticResource CvtYesNo}, Mode=TwoWay}">
   <sys:String>Yes<sys:String>
   <sys:String>No<sys:String>
</ComboBox>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...