У меня есть datagrid, который перечисляет статус пары вещей и отображает либо «True», либо «False». Когда я дважды нажимаю на ячейку, я хочу переключить отображение этой ячейки. Я попытался использовать ряд свойств для моего datagrid, таких как currentItem, SelectedItem, SelectedValue и SelectedUnit, но ни один из них не сработал.Как изменить значение отдельной ячейки в файле данных WPF при двойном щелчке?
<DataGrid x:Name="dataGrid1" IsReadOnly="True" IsManipulationEnabled="False" Width="250" Height="468" Margin="795,15,18,15"
VerticalAlignment="Top" AutoGenerateColumns="False" CanUserAddRows="False" MouseDoubleClick="DoubleClick"
ItemsSource="{Binding Availability}">
<DataGrid.Columns>
<DataGridTextColumn Header="Number" Binding="{Binding Key, UpdateSourceTrigger=PropertyChanged}" Width="Auto"/>
<DataGridTextColumn Header="Status1" Binding="{Binding Value1, UpdateSourceTrigger=PropertyChanged}" Width="Auto"/>
<DataGridTextColumn Header="Status2" Binding="{Binding Value2, UpdateSourceTrigger=PropertyChanged}" Width="*"/>
</DataGrid.Columns>
</DataGrid>
Вот событие в моей коде:
private void DoubleClick(object sender, MouseButtonEventArgs e)
{
if (dataGrid1.SelectedItem == null) return;
if (dataGrid1.CurrentItem == "True")
{
dataGrid1.CurrentItem = "False";
}
else if (dataGrid1.CurrentItem == "False")
{
dataGrid1.CurrentItem = "True";
}
}
Ваш DataGrid привязан к источнику данных, поэтому вам необходимо будет обновить этот источник данных, а затем перезагрузить данные. – jp2code
Я знаю, как определить, какую строку нажать, используя dataGrid1.SelectedIndex, но как определить, какой столбец нажат? Например, если я дважды кликнул на произвольную строку в среднем столбце, связанную с Value1. Как сообщить моему источнику данных, что ему нужно переключать Value1, а не Value2? – reubonwry
Казалось бы, мне нужно что-то вроде dataGrid1.SelectedColumn, но я не вижу этого свойства, указанного на веб-сайте msdn. – reubonwry