0

Silverlight5 と MVVM パターンについて質問があります..

私のユーザーコントロールウィンドウには、2つのラジオボタンコントロールがあり、を使用してラジオボタンコントロールをグループ化しましたGroupName="sex"

構文は次のとおりです。

<RadioButton IsChecked="{Binding EntityValue,Mode=TwoWay}" Content="Male"
             GroupName="Sex"
             Visibility="{Binding DataTypeID, Converter={StaticResource radioconverter}}"/>

<RadioButton IsChecked="{Binding EntityValue,Mode=TwoWay}" Content="Female"
             GroupName="Sex"
             Visibility="{Binding DataTypeID, Converter={StaticResource radioconverter}}"/>

Entity Framework を使用して、チェックされた値をデータベースに正常に挿入しました。

例: 私のデータベースは次のようになります。

CustomerID  | CustomerName | EntityValue |
------------------------------------------
1           | raj          | Male
2           | reena        | Female

データベース名:CDetails

値を自分にバインドするcustomerID=1手段を選択した場合MaleradioButton1

customerID=2Femaleを自分にバインドする手段を選択した場合radioButton2

それはどのように可能ですか?

4

1 に答える 1

1

をブール値に変更し、true を返す値のパラメーターを渡すコンバーターを作成する必要がありEntityValueます。

<RadioButton IsChecked="{Binding EntityValue, Mode=TwoWay,
                         Converter={StaticResource MyConverter},
                         ConverterParameter=Male}"
             Content="Male"/>

<RadioButton IsChecked="{Binding EntityValue, Mode=TwoWay,
                         Converter={StaticResource MyConverter},
                         ConverterParameter=Female}"
             Content="Female"/>

次に、コンバーター(男性/女性が文字列であると仮定します-そうでない場合はキャストを置き換えます):

public class MyConverter: IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        string input = (string)value;
        string test = (string)parameter;
        return input == test;
    }

    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        if (value == null || !(value is bool))
        {
            return string.Empty;
        }
        if (parameter == null || !(parameter is string))
        {
            return string.Empty;
        }
        if ((bool)value)
        {
            return parameter.ToString();
        }
        else
        {
            return string.Empty;
        }
    }
}    
于 2013-01-02T13:26:21.577 に答える