Mam Window
z kilkoma kontrolkami na nim. Jednym z nich jest DataGrid
. Chcę zaimplementować pewne domyślne przejście z fokusem. Mianowicie:Jak uczynić DataGrid pojedynczym przystankiem jako całokształt na przesunięciu ostrości przy wyborze wiersza klawiszy strzałek?
DataGrid
to pojedynczy przystanek jako całość, a nie każdy wiersz.- Po ustawieniu ostrości na
DataGrid
użytkownik może poruszać się między wierszami za pomocą klawiszy strzałek w górę i w dół. - Poruszanie się po kolumnach przy użyciu lewego i prawego klawisza jest niedozwolone.
- Pierwsza kolumna (i jedyna odpowiednia dla nawigacji) jest typu
DataGridHyperlinkColumn
. Kiedy użytkownik natrafia na klawisz spacji lub klawisz Enter, wykonuje hiperlink.
Obecnie mam następujący kod:
<DataGrid x:Name="DocumentTemplatesGrid"
Grid.Row="2"
ItemsSource="{Binding Source={StaticResource DocumentTemplatesView}}"
IsReadOnly="True"
AutoGenerateColumns="False"
SelectionUnit="FullRow"
SelectionMode="Single"
TabIndex="1"
IsTabStop="True">
<DataGrid.CellStyle>
<Style TargetType="DataGridCell">
<Setter Property="IsTabStop" Value="False"/>
</Style>
</DataGrid.CellStyle>
<DataGrid.RowStyle>
<Style TargetType="DataGridRow">
<Setter Property="IsTabStop" Value="False"/>
</Style>
</DataGrid.RowStyle>
<DataGrid.Columns>
<DataGridHyperlinkColumn Header="Name"
Width="2*"
Binding="{Binding Name}"/>
<DataGridTextColumn Header="Description"
Width="5*"
Binding="{Binding Description}"/>
<DataGridTextColumn Header="Type"
Width="*"
Binding="{Binding Type}"/>
</DataGrid.Columns>
</DataGrid>
Niestety, to nie osiągnie moje oczekiwania. Proszę wyjaśnić, jak to osiągnąć?
Do której z 4 funkcji potrzebujesz pomocy? TabStops (1) i nawigacja góra-dół (2) działały zgodnie z oczekiwaniami, gdy próbowałem cię kod – ASh
Jest z nim wiele problemów. DataGrid jest pojedynczym stopem jako całości, ale problem polega na tym, że kiedy przechodzę do kontrolki, która ma największą liczbę w właściwości TabIndex i TAB po raz kolejny, przechodzi przez wiersze siatki danych i za pomocą TAB jeszcze kilka razy kontynuuje przechodzenie to wiersz po wierszu. To nie do przyjęcia. Poruszanie się po wierszach powinno odbywać się tylko za pomocą klawiszy strzałek. Co więcej, podczas pierwszej poprawnej wizyty w siatce danych, kiedy używam klawisza strzałki, nie wybieram żadnego z wierszy. Przechodzi do następnej lub poprzedniej kontroli. Tak więc pierwsza i druga funkcja nie działają poprawnie. – Dawid