Domanda

I am trying to modify data in rows in a gridview which I have pulled from a database.

The data is being bound to each gridview column like the following.

<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>

I have a MouseLeftButtonDown event on the textblock, and this fires when I click on the specific text.

private void TextBlock_MouseLeftButtonDown_1(object sender, MouseButtonEventArgs e)
{
    MessageBox.Show("Hello");
}

The issue I am having is that I can't find a way to access the row data(such as the id, or the text in the row).

Is there any way to access all the row data from within the click event?

Thanks

È stato utile?

Soluzione

Try This:

  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
    }

Altri suggerimenti

You should not do anything not directly related to the UI in the code behind of your XAML file.. you should bind the click event to a command of your Model or ViewModel (the entity bound to your cell, in your case the entity which contains the "Status" property) ; that entity should have easier access to "the row data".

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top