在ViewModel`中将WPF单选按钮绑定到RadioButton

时间:2011-05-13 13:55:46

标签: wpf data-binding binding radio-button

基本上我在用户控件中有一组单选按钮。我希望这些与它们的“对应物”相同,它们保存在ViewModel的列表中。

目前,我必须将每个属性的几乎所有属性绑定到ViewModel集合中的适用索引。 E.g:

<RadioButton x:Name="btnStatus2" IsChecked="{Binding Path=radioButtonsIsChecked, Mode=TwoWay}" 
                     Content="{Binding Path=StatusButtonList[1].Content, Mode=TwoWay}"
                     Tag="{Binding Path=StatusButtonList[1].Tag, Mode=TwoWay}"
                     Visibility="{Binding Path=StatusButtonList[1].Visibility, Mode=OneWay}"
                     GroupName="statusBtns" Grid.Column="1" Grid.Row="0" >

正如你所看到的,如果我的控件中有10个单选按钮,View将会非常大。我对WPF很新,任何建议都将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:1)

使用ItemsControl并将ItemsSource属性设置为viewmodel中的集合。

<ItemsControl ItemsSource="{Binding Path=RadioButtons}">
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <RadioButton IsChecked="{Binding Path=IsRadioButtonChecked}" />
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>

WPF中还有一些特殊的ItemsControl派生类型,它们提供附加功能(滚动,选定项目等)。 ListView,ListBox,ComboBox,DataGrid,TreeView等都是您可以在这里使用的ItemsControls