我有一个datagrid1有4列(余额,金额,交易,日期)。另一个datagrid2由名称组成。当我单击名称时,datagrid1会根据数据库中的“name”配置文件更改其值。在datagrid2中,我将“显示全部”行放在每当我选择“全部显示”时,datagrid1应该在最左边添加另一列并将列命名为“Name”,然后总列将为5.并且每当“全部显示”时“未选中datagrid1的列应返回4.现在我该怎么做?我脑海中的一个解决方案是创建2个精确的数据网格,相同的位置,只要我选择“全部显示”或选择名称就可以隐藏/显示它,但如果有更高效的其他方式,我认为它是错误的。我想这样做,因为你知道当我选择“全部显示”并查看我的datagrid1时,我无法分辨哪个事务是因为没有包含名称。提前谢谢。
datagrid XAML代码:
<DataGrid x:Name="accountsBalance_grd"
HorizontalAlignment="Left"
Margin="266,118,0,0"
VerticalAlignment="Top"
Height="498"
Width="836"
AreRowDetailsFrozen="True"
AutoGenerateColumns="False"
SelectionChanged="accountsBalance_grd_SelectionChanged"
CanUserReorderColumns="False"
CanUserResizeColumns="False"
CanUserResizeRows="False"
CanUserSortColumns="False"
CanUserAddRows="False"
BorderBrush="Blue"
Background="White"
Foreground="Blue"
BorderThickness="2"
HorizontalGridLinesBrush="Black">
<DataGrid.ColumnHeaderStyle>
<Style TargetType="DataGridColumnHeader">
<Setter Property="FontSize"
Value="20" />
</Style>
</DataGrid.ColumnHeaderStyle>
<DataGrid.Columns>
<DataGridTextColumn Header="Total Balance"
Width="150"
Binding="{Binding accountBalanceTotal}"
IsReadOnly="True" />
<DataGridTextColumn Header="Amount"
Width="120"
Binding="{Binding accountBalanceAmount}"
IsReadOnly="True" />
<DataGridTextColumn Header="Transaction"
Width="160"
Binding="{Binding accountBalanceTransaction}"
IsReadOnly="True" />
<DataGridTextColumn Header="Date"
Width="*"
Binding="{Binding accountBalanceDate}"
IsReadOnly="True" />
</DataGrid.Columns>
<DataGrid.RowStyle>
<Style TargetType="{x:Type DataGridRow}">
<Setter Property="FontSize"
Value="15" />
<Setter Property="FontFamily"
Value="Arial" />
<Setter Property="FontWeight"
Value="Bold" />
<Setter Property="Foreground"
Value="Black" />
</Style>
</DataGrid.RowStyle>
</DataGrid>
答案 0 :(得分:1)
不要使用两个网格!!您可以利用WPF绑定来解决此问题。你可以显示\ hide&#34; Name&#34; &#34;选择全部&#34;选项(你是否使用了复选框?)。要了解如何显示\ hide Datagrid列,请参阅this link
您的第二个问题是关于选择不同的名称并在datagrid1中加载数据,因为您可以随时设置Datagrid1的数据源&#34; SelectedName&#34; datagrid2的变化。同样,这只是WPF绑定。
您的方案非常直接由WPF处理。 如果您需要更多详细信息,请与我们联系。