#c# #wpf #xaml
#c# #wpf #xaml
Вопрос:
Как я могу получить данные из TextBlock Name="txtSellerId"
<Grid Margin="10">
<DataGrid Name="dgUsers" AutoGenerateColumns="False" LoadingRowDetails="dgUsers_LoadingRowDetails">
<DataGrid.Columns>
</DataGrid.Columns>
<DataGrid.RowDetailsTemplate >
<DataTemplate >
<DockPanel Background="GhostWhite">
<grid>
<TextBlock Name="txtSellerId" Text="{Binding SellerId, StringFormat=d}" Grid.Column="1" Grid.Row="2" />
</Grid>
</DockPanel>
</DataTemplate>
</DataGrid.RowDetailsTemplate>
</DataGrid>
Комментарии:
1. Поскольку вы привязываете значения, почему вы не работаете с данными в своей viewmodel, а не получаете данные обратно из пользовательского интерфейса?
Ответ №1:
Чтобы получить значение программно, вы можете попробовать этот метод
dgUsers.LoadingRowDetails = dgUsers_LoadingRowDetails;
void dgUsers_LoadingRowDetails(object sender, DataGridRowDetailsEventArgs e)
{
var textBlockValue = (e.DetailsElement as FrameworkElement).FindName("txtSellerId") as TextBlock;
}
Ответ №2:
Вы можете привязать модель к строкам таблицы данных и использовать ее в коде.
var user = (User)myDataGrid.SelectedItem;
var userId = user.Id;
Простой пример: DataGrid с подробными сведениями о строке