<DataGrid Name="gridAnagrafiche" Margin="10" DockPanel.Dock="Top" ItemsSource="{Binding listAnagrafiche, ElementName=window}" AutoGenerateColumns="False" IsReadOnly="True">
<DataGrid.ItemContainerStyle>
<Style TargetType="DataGridRow">
<EventSetter Event="MouseDoubleClick" Handler="rowAnagrafiche_DoubleClick"/>
</Style>
</DataGrid.ItemContainerStyle>
<DataGrid.Columns>
<DataGridTextColumn Header="Codice" Binding="{Binding cod}" Width="0.7*"/>
<DataGridTextColumn Header="Gruppo" Binding="{Binding gruppo}" Width="1*"/>
<DataGridTextColumn Header="Ragione Sociale" Binding="{Binding nome}" Width="1.3*"/>
</DataGrid.Columns>
</DataGrid>
这是我的xaml
我被卡住了。我无法从单击的行中获取所有数据单元。
单击后,我应该使用设置的文本框打开“ panelCreaAnagrafica”
private void rowAnagrafiche_DoubleClick(object sender, MouseButtonEventArgs e)
{
hideAllPanels();
this.panelCreaAnagrafica.Visibility = Visibility.Visible;
var labelTemp = (TextBox)this.panelCreaAnagrafica.FindName("txtCod");
labelTemp.Text = (FIRST DATA CELL);
labelTemp = (TextBox)this.panelCreaAnagrafica.FindName("txtGruppo");
labelTemp.Text = (SECOND DATA CELL);
labelTemp = (TextBox)this.panelCreaAnagrafica.FindName("txtRagSoc");
labelTemp.Text = (THIRD DATA CELL);
}
您可以将事件处理程序的sender参数转换为DataGridRow,然后使用“ cod”,“ gruppo”,“ nome”属性将其DataContext转换为您的类型,例如:
private void rowAnagrafiche_DoubleClick(object sender, MouseButtonEventArgs e)
{
DataGridRow row = sender as DataGridRow;
if (row != null)
{
dynamic dataObject = row.DataContext;
string nome = dataObject.nome;
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句