Как получить доступ к данным строки из события 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 (сущность, привязанная к вашей ячейке, в вашем случае сущность, которая содержит свойство "Статус"); эта сущность должна иметь более легкий доступ к "данным строки".

Другие вопросы по тегам