- У меня немного RadioButtons, и я не хочу связывать свойство IsChecked каждого из них с уникальным свойством в коде.
- Я хочу иметь одно свойство типа «CurrentSelected» и в соответствии с , чтобы установить «IsChecked».
- Кроме того, я не хочу использовать преобразователи.
Я попытался использовать поведение «ChangePropertyAction», но он выглядит как , он работает только в одном направлении. Вот мой код:RadioButtons с поведением привязаны к одному свойству
<RadioButton x:Name="UpRadioButton" Margin="5" Content="Up" > <i:Interaction.Triggers> <ei:DataTrigger Binding="{Binding IsChecked, ElementName=UpRadioButton}" Value="True"> <ei:ChangePropertyAction TargetObject="{Binding Mode=OneWay}" PropertyName="SelectedDirection" Value="{x:Static Enums:DirectionEnum.Up}" /> </ei:DataTrigger> </i:Interaction.Triggers> </RadioButton> <RadioButton x:Name="DownRadioButton" Margin="5" Content="Down" > <i:Interaction.Triggers> <ei:DataTrigger Binding="{Binding IsChecked, ElementName=DownRadioButton}" Value="True"> <ei:ChangePropertyAction TargetObject="{Binding Mode=OneWay}" PropertyName="SelectedDirection" Value="{x:Static Enums:DirectionEnum.Down}" /> </ei:DataTrigger> </i:Interaction.Triggers> </RadioButton> <RadioButton x:Name="LeftRadioButton" Margin="5" Content="Left" > <i:Interaction.Triggers> <ei:DataTrigger Binding="{Binding IsChecked, ElementName=LeftRadioButton}" Value="True"> <ei:ChangePropertyAction TargetObject="{Binding Mode=OneWay}" PropertyName="SelectedDirection" Value="{x:Static Enums:DirectionEnum.Left}" /> </ei:DataTrigger> </i:Interaction.Triggers> </RadioButton> <RadioButton x:Name="RightRadioButton" Margin="5" Content="Right" > <i:Interaction.Triggers> <ei:DataTrigger Binding="{Binding IsChecked, ElementName=RightRadioButton}" Value="True"> <ei:ChangePropertyAction TargetObject="{Binding Mode=OneWay}" PropertyName="SelectedDirection" Value="{x:Static Enums:DirectionEnum.Right}" /> </ei:DataTrigger> </i:Interaction.Triggers> </RadioButton>
мой взгляд модель очень проста: MainViewModel.cs
public class MainViewModel : ViewModelBase
{
private DirectionEnum _selectedDirection;
public DirectionEnum SelectedDirection
{
get { return _selectedDirection; }
set
{
if (_selectedDirection != value)
{
_selectedDirection = value;
RaisePropertyChanged();
}
}
}
public MainViewModel()
{
SelectedDirection = DirectionEnum.Up;
}
}
, как вы можете видеть из кода, то " Up "RadioButton должен быть уже проверен ... Что мне не хватает?
Он может работать только один раз, так как ваши привязки - это только один способ ... Кроме того, что случилось с преобразователями? Есть один, который * отлично * для этого – BradleyDotNET
конвертерам требуется обслуживание ... – kaycee
Так что вообще код ... Его выбор, но, говоря, что вам не нравятся конвертеры, потому что они требуют «обслуживания», это довольно плохая причина/извините в моей книге. – BradleyDotNET