Установите флажок в GridView при щелчке строки - WPF - PullRequest
1 голос
/ 06 октября 2011

У меня есть это:

       <ListView Name="UserSolutionsGrid">
            <ListView.View>
                <GridView>
                    <GridViewColumn Header="">
                        <GridViewColumn.CellTemplate>
                            <DataTemplate>
                                <CheckBox HorizontalAlignment="Center" IsChecked="{Binding IsSelected}" />
                            </DataTemplate>
                        </GridViewColumn.CellTemplate>
                    </GridViewColumn>
                    <GridViewColumn Width="350" DisplayMemberBinding="{Binding Name}" Header="Solution" />
                </GridView>
            </ListView.View>
        </ListView>

Что я хочу сделать, так это иметь возможность переключать флажок, щелкая строку, будь то сам флажок или Имя.

Не знаете, как поступить, нужно ли подключить событие мыши к сетке, найти выбранную строку, а затем найти флажок и переключить его?

Ответы [ 2 ]

1 голос
/ 06 октября 2011

Это подойдет для вас. Все, что вам нужно сделать, это привязать свойство checkBox к свойству IsSelected вашего ListViewItem, используя RelativeSource-

<ListView Name="UserSolutionsGrid">
    <ListView.View>
       <GridView>
          <GridViewColumn Header="">
              <GridViewColumn.CellTemplate>
                  <DataTemplate>
                     <CheckBox HorizontalAlignment="Center" IsChecked="{Binding IsSelected, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=ListViewItem}}" />
                   </DataTemplate>
              </GridViewColumn.CellTemplate>
          </GridViewColumn>
          <GridViewColumn Width="350" DisplayMemberBinding="{Binding Name}" Header="Solution" />
       </GridView>
     </ListView.View>
</ListView>
0 голосов
/ 06 октября 2011

Поскольку вы упомянули, что это множественный выбор, и вы хотите иметь возможность переключаться и т. Д. Я бы посмотрел на использование события мыши, как вы изначально предложили.

Это немного облегчит код переключения.Хотя, если вы используете привязку данных, нет необходимости находить строку и переключать флажок, просто установите значение того, с чем привязан ваш флажок, затем поднимите OnPropertyChanged ().

Это представление сетки только когда-либо будетесть две колонки там?Я думаю, что вы могли бы достичь того же результата без сетки, просто используя шаблон элемента в просмотре списка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...