Привязать радио-кнопку WPF к RadioButton в ViewModel` - PullRequest
0 голосов
/ 13 мая 2011

По сути, у меня есть набор переключателей в пользовательском элементе управления.Я хотел бы, чтобы они были равны их «аналогам», которые хранятся в списке внутри ViewModel.

В настоящий момент мне приходится привязывать практически все свойства каждого из них к соответствующему индексу в модели ViewModel.Коллекция их.Например:

<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 переключателей в моем контроле.Я довольно новичок в WPF, и любые советы будут с благодарностью.Спасибо!

1 Ответ

1 голос
/ 13 мая 2011

Используйте ItemsControl и установите свойство ItemsSource для своей коллекции в модели представления.

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

В WPF также есть специальные производные типы ItemsControl, которые предоставляют дополнительные функции (прокрутка, выбранные элементы и т. Д.). ListView, ListBox, ComboBox, DataGrid, TreeView и т. Д. - все это элементы управления, которые вы также можете использовать здесь

...