Как получить доступ к данным строки из события MouseLeftButtonDown для текстового блока в виде сетки
Я пытаюсь изменить данные в строках в виде сетки, которые я извлек из базы данных.
Данные привязываются к каждому столбцу gridview, как показано ниже.
<GridViewColumn Header="Status" Width="120" util:GridViewSort.PropertyName="Status">
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=Status}" FontWeight="Bold" MouseLeftButtonDown="TextBlock_MouseLeftButtonDown_1"/>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
У меня есть событие MouseLeftButtonDown для текстового блока, и это происходит, когда я нажимаю на конкретный текст.
private void TextBlock_MouseLeftButtonDown_1(object sender, MouseButtonEventArgs e)
{
MessageBox.Show("Hello");
}
У меня проблема в том, что я не могу найти способ доступа к данным строки (таким как идентификатор или текст в строке).
Есть ли способ получить доступ ко всем данным строки из события click?
Спасибо
2 ответа
Попробуй это:
private void TextBlock_MouseLeftButtonDown_1(object sender, MouseButtonEventArgs e)
{
TextBlock textBlock = (sender as TextBlock);
string text = textBlock.Text;// Text in the TextBlock
object datacontext = textBlock.DataContext; // datacontext, Entire row info
}
Вы не должны делать ничего, что напрямую не связано с пользовательским интерфейсом в коде вашего файла XAML. Вы должны связать событие click с командой вашей модели или ViewModel (сущность, привязанная к вашей ячейке, в вашем случае сущность, которая содержит свойство "Статус"); эта сущность должна иметь более легкий доступ к "данным строки".