我在綁定我的RadioButton
屬性IsChecked
時遇到了一些問題。我在網格上有兩個RadioButton
,其中Visibility
綁定到我的viewmodel上的一個屬性。我想要實現的是始終將第一個RadioButton
設置爲Checked狀態,此時網格變得可見。 下面是一些代碼:RadioButtons綁定在Windows Phone 8.1上
<Grid Visibility="{Binding State, Converter={StaticResource VisibilityConverter}}">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<RadioButton Grid.Row="0"
Margin="20,0"
IsChecked="{Binding State, Converter={StaticResource StateToBooleanConverter}}"
Content="content 1" />
<RadioButton Grid.Row="1"
Margin="20,0"
Content="content 2" />
</Grid>
按照我的邏輯,應該先設置RadioButton
當財產State
是要特定的狀態,當電網變得可見經過。它的工作正常,直到我第二次RadioButton
。然後我的綁定不起作用,並且當State
正在更改時,我的StateToBooleanConverter
中沒有任何反應。 我讀了很多關於按單選按鈕綁定的問題的信息,但在我的案例中沒有任何工作。 是否有可能沒有新的屬性檢查radioButton?我將不勝感激任何意見如何我可以解決這個問題。
編輯:
有一個從視圖模型和轉換的一些代碼IsChecked
:
public class MainViewModel : ViewModel
{
public MainViewModel
{
this.ChangeState = new RelayCommand(this.ChangeStateExecute);
}
public PageState State
{
get
{
return this.state;
}
set
{
if (this.state != value)
{
this.state = value;
base.RaisePropertyChanged();
}
}
}
public RelayCommand ChangeState { get; private set; }
private void ChangeStateExecute()
{
this.State = PageState.RadioButtonsVisible;
}
}
public class StateToBooleanConverter : Converter
{
protected override object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
var state = (PageState)value;
var result = state == PageState.RadioButtonsVisible;
return result;
}
}
請附上您的CS代碼。 – lloyd
'State'是否實現了'INotifyPropertyChanged'? –
@ mike-eason是的,它的確如此。 – RenDishen