У меня есть DataGrid для отображения коллекции MobileInfo. DataGrid настроен с SelectionUnit="FullRow"
. Если я нажму на любую строку, тогда она выберет всю строку, дополнительно укажет ячейку с границей, куда попала мышь.Как получить значения из DataGridTextColumn на основе KeyBinding в C#
Выбор границы осуществляется при навигации по клавиатуре, например: Left
, Right
, Up
и Down
. На основе выбора ячейки Я хочу, чтобы извлечь значения из DataGridTextColumn
Примечание: Этот вопрос Сугубо идет о Как получить значения на основе Зачет ввода (обработки параметра и извлечения значений). Но «How to Pass Cell Information from DataGrid in WPF KeyBinding?» этот вопрос рассказывает о том, как передавать информацию из пользовательского интерфейса. Здесь мне нужно получить значение Android от Paramater.
См изображение он имеет вывод на экран
В приведенном выше снимке экрана Андроид выбран, основываясь на клавиатуре навигации, изменения выбора соты.
Мой исходный код XAML:
<DataGrid AutoGenerateColumns="False" ItemsSource="{Binding MobileList, UpdateSourceTrigger=PropertyChanged}" SelectionUnit="FullRow" IsReadOnly="True">
<DataGrid.InputBindings>
<KeyBinding Key="C" Modifiers="Ctrl" Command="{Binding Path=DataContext.CopyToClipBoardCommand}" CommandParameter="{Binding }" />
</DataGrid.InputBindings>
<DataGrid.Columns>
<!--Column 1-->
<DataGridTextColumn Binding="{Binding MobileName}" Header="Name" />
<!--Column 2-->
<DataGridTextColumn Binding="{Binding MobileOS}" Header="OS" />
</DataGrid.Columns>
</DataGrid>
Примечание: Не изменяйте SelectionUnit в DataGrid и дать ответ, используя MVVM подход
Просьба представить свое решение, как пройти в клетку информация на основе навигации по клавиатуре
C# исходный код, связанный с XAML DataGrid
public class GridViewModel
{
public ObservableCollection<MobileInfo> MobileList { get; set; }
public GridViewModel()
{
MobileList = new ObservableCollection<MobileInfo>();
MobileList.Add(new MobileInfo { MobileName = "iPhone", MobileOS = "iOS" });
MobileList.Add(new MobileInfo { MobileName = "Xperia", MobileOS = "Android" });
MobileList.Add(new MobileInfo { MobileName = "Lumina", MobileOS = "Windows" });
}
}
public class MobileInfo
{
public string MobileName { get; set; }
public string MobileOS { get; set; }
}
Он выберет только одну строку. Но мое требование состоит в том, чтобы перетащить опору как HTML-таблицу, она должна выбирать содержимое как HTML-таблицу. –