Combobox выборы - PullRequest
       26

Combobox выборы

1 голос
/ 21 ноября 2011

У меня есть этот комбинированный список, который содержит шаблон данных с флажком и текстовым полем.Все работает, но я бы хотел немного облегчить выбор значения.Прямо сейчас я должен нажать на чечбокс, чтобы изменить значение флажка.Теперь я хотел бы иметь возможность просто щелкнуть элемент в поле со списком, который также должен установить флажок.

Возможно ли это?Если да, то как?

Вот изображение моего решения прямо сейчас

enter image description here

Вот код моего комбинированного списка

<ComboBox Name="employeeComboBox" Margin="2,0,2,0"
    ScrollViewer.CanContentScroll="False"
    DataContext="{Binding EmployeesOverviewViewModel, Source={StaticResource ViewModelLocator}}"
    ItemsSource="{Binding Employees}">
    <ComboBox.ItemTemplate>
        <DataTemplate>
            <StackPanel Orientation="Horizontal">
                <CheckBox IsChecked="{Binding Path=IsSelected}" Margin="2,0,2,2" VerticalAlignment="Center"/>
                <TextBlock Text="{Binding Path=Name}" VerticalAlignment="Center"/>
            </StackPanel>
        </DataTemplate>
    </ComboBox.ItemTemplate>
</ComboBox>

Ответы [ 3 ]

3 голосов
/ 21 ноября 2011

Измените ваш DataTemplate на:

<DataTemplate>
    <CheckBox IsChecked="{Binding Path=IsSelected}" 
              Margin="2,0,2,2" 
              Content="{Binding Path=Name}" 
              VerticalAlignment="Center"/>
</DataTemplate> 

и должно работать.

2 голосов
/ 21 ноября 2011

Почему вы не используете свойство Content в CheckBox?

<CheckBox Content="Hello, World" />

Таким образом, флажок будет переключаться даже при нажатии на текст (содержимое).

Что касается вашего конкретного случая, вы можете привязать имя к контенту вместо создания отдельного текстового блока для него, и он должен работать так, как вы хотите.

1 голос
/ 21 ноября 2011

Что радует, так это то, что ваш флажок и текст - это две разные сущности, вам нужно объединить их, просто используя свойство текста флажка и связав его.таким образом, когда вы нажимаете на текст, ваш флажок будет установлен.

...