2

私はこれについてどうやって行くのに苦労していますか?私の VM には、 Yes/No( true/false )nullable boolにバインドしたいプロパティがあります。誰かが私を正しい方向に向けることができますか? RadRadioButton

VM

public bool? IsSDS { get; set; }

意見

<telerik:Label Content="Self Directed Support" />
<StackPanel Orientation="Horizontal">
     <telerik:RadRadioButton x:Name="SelfDirectedSupportYes" Content="Yes" />
     <telerik:RadRadioButton x:Name="SelfDirectedSupportNo" Content="No" />
</StackPanel>

編集

私はこれが機能していると思っていましたが、私は間違っていました。はいのみが拘束力があります。以下は私のビューにあるものCreateAuthViewです:

<StackPanel Orientation="Horizontal" Margin="3" Grid.Column="1" Grid.Row="2">
   <telerik:RadRadioButton x:Name="Authorization_SelfDirectedSupportYes" GroupName="SDS" Content="Yes" />
    <telerik:RadRadioButton x:Name="Authorization_SelfDirectedSupportNo" GroupName="SDS" Content="No" />
</StackPanel>

そして、ここに私のViewModelの対応する部分がありますCreateAuthViewModel:

public Authorization Authorization
{
    get
    {
       return this.authorization;
    }
    set
    {
       if (authorization != value)
       {
          this.authorization = value;
          NotifyOfPropertyChange(() => Authorization);                    
       }
    }
}

そして最後に、私のモデルのプロパティAuthorization:

public bool? SelfDirectedSupportYes
{
   get
   {
      return this.selfDirectedIndicator;
   }
   set
   {
      this.selfDirectedIndicator = value;
      this.OnPropertyChanged();
   }
}
4

2 に答える 2

1
    <telerik:RadRadioButton x:Name="SelfDirectedSupportYes" IsChecked="{Binding IsSDS}" Content="Yes" />

    <telerik:RadRadioButton x:Name="SelfDirectedSupportNo" IsChecked="{Binding IsSDS, Converter={StaticResource InverseBooleanConverter}}" Content="No" />






    [ValueConversion(typeof(bool), typeof(bool))]
       public class InverseBooleanConverter: IValueConverter
    {
       #region IValueConverter Members

         public object Convert(object value, Type targetType, object parameter,
            System.Globalization.CultureInfo culture)
       {
         if (targetType != typeof(bool))
            throw new InvalidOperationException("The target must be a boolean");

          return !(bool)value;
       }

        public object ConvertBack(object value, Type targetType, object parameter,
           System.Globalization.CultureInfo culture)
       {
           throw new NotSupportedException();
       }

        #endregion
     }
于 2013-05-02T19:49:54.133 に答える