我目前有一个组合框,其中包含从数据库绑定的数据:
<ComboBox x:Name="bookingComboBox"
ItemsSource="{Binding ElementName=bookingDomainDataSource, Path=Data}"
Height="20"
VerticalAlignment="Top"
Margin="387,79,114,0">
<ComboBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Width="150"
Text="{Binding Path=bookingName}" />
<TextBlock Text="{Binding Path=bookingDate, StringFormat=d MMMM yyyy}"
Width="100" />
</StackPanel>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
我也有datagrid:
<sdk:DataGrid AutoGenerateColumns="False"
Height="200"
HorizontalAlignment="Left"
ItemsSource="{Binding Data, ElementName=bookingDomainDataSource}"
Margin="147,132,0,0"
x:Name="bookingDataGrid"
RowDetailsVisibilityMode="VisibleWhenSelected"
VerticalAlignment="Top"
Width="400">
<sdk:DataGrid.Columns>
<sdk:DataGridTextColumn x:Name="bookingIdColumn"
Binding="{Binding bookingId, Mode=OneWay}"
Header="Booking Id"
IsReadOnly="True"
Width="SizeToHeader" />
<sdk:DataGridTextColumn x:Name="bookingNameColumn"
Binding="{Binding bookingName}"
Header="Booking Name"
Width="SizeToHeader" />
<sdk:DataGridTextColumn x:Name="bookingDateColumn"
Binding="{Binding bookingDate}"
Header="Booking Date"
Width="SizeToHeader" />
<sdk:DataGridTextColumn x:Name="paymentIdColumn"
Binding="{Binding paymentId}"
Header="Payment Id"
Width="SizeToHeader" />
<sdk:DataGridTextColumn x:Name="showIdColumn"
Binding="{Binding showId}"
Header="Show Id"
Width="SizeToHeader" />
<sdk:DataGridTextColumn x:Name="ticketIdColumn"
Binding="{Binding ticketId}"
Header="Ticket Id"
Width="SizeToHeader" />
<sdk:DataGridTextColumn x:Name="ticketQuantityColumn"
Binding="{Binding ticketQuantity}"
Header="Ticket Quantity"
Width="SizeToHeader" />
<sdk:DataGridTextColumn x:Name="userIdColumn"
Binding="{Binding userId}"
Header="User Id"
Width="SizeToHeader" />
</sdk:DataGrid.Columns>
</sdk:DataGrid>
我希望数据网格更改为组合框中行集的行。
我该怎么做?
由于
答案 0 :(得分:2)
如果所有控件都绑定到同一个源,则应该能够使用以下属性:
IsSynchronizedWithCurrentItem="True"
应该在ComboBox和DataGrid上设置哪个。
答案 1 :(得分:0)
必须将ItemsSource属性设置为集合(IEnumerable)。将ItemsSource设置为非集合对象意味着什么?它不会是物品的“来源”。
执行您要求的最简单方法是将数据网格的ItemsSource绑定到ComboBox的SelectedItem属性。如果您希望网格在组合框中显示所选项目的子数据,请尝试使用ItemsSource =“{Binding ElementName = bookingComboBox,Path = SelectedItem.CHILD_DATA_PROPERTY}”。