#c# #wpf #silverlight #xaml #data-binding
#c# #wpf #silverlight #xaml #привязка к данным
Вопрос:
У меня есть следующий код:
<sdk:DataGridTemplateColumn Header="Print Ticket"
Width="100">
<sdk:DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Path=ticketId}"
Width="0"
x:Name="printTicketBlock" />
<Button Content="Print Ticket"
Cursor="Hand" />
</StackPanel>
</DataTemplate>
</sdk:DataGridTemplateColumn.CellEditingTemplate>
</sdk:DataGridTemplateColumn>
Значение printTicketBlock каждый раз разное, и я бы хотел, чтобы кнопка использовала это значение. Но, похоже, я не могу разобраться, как это сделать.
Идентификатор извлекается из базы данных и обычно равен 1,2,3 и т.д.
Но я хотел бы, чтобы значение (которое будет другим) было доступно мне.
Вот скриншот того, как будет выглядеть отображение:
Кто-нибудь может мне здесь помочь.
Спасибо
Ответ №1:
Кнопка наследует шаблонный элемент в DataContext, вы можете получить свой объект следующим образом:
private void Button_Click(object sender, RoutedEventArgs e)
{
var data = (sender as Button).DataContext as MyDataObject;
DoStuff(data.ticketId);
}
Я думаю, что с текстовым блоком ничего не нужно делать.
Редактировать: Не очень понятно, чего вы хотите («Я бы хотел, чтобы кнопка использовала это значение» крайне расплывчато), если это не то, что вы ищете, проясните свой вопрос.