我正在尝试在ComboBox中添加DataGrid以尝试在复杂窗口上保存屏幕空间。
这是我的代码:
<ComboBox Grid.Row="0" Grid.Column="0" >
<ComboBox.ItemTemplate>
<DataTemplate>
<DataGrid ItemsSource="{Binding Path=ProductList, Source={StaticResource MainWindowViewModel}}" AutoGenerateColumns="false" Width="500" Height="80">
<DataGrid.Columns>
<DataGridCheckBoxColumn Header="Selected" IsReadOnly="False" />
<DataGridTextColumn Header="Name" Binding="{Binding Name}" Width="100" />
<DataGridTextColumn Header="Code" Binding="{Binding Code}" Width="100" />
</DataGrid.Columns>
</DataGrid>
</DataTemplate>
</ComboBox.ItemTemplate>
<Separator/>
</ComboBox>
分隔符只是破解,因此组合框中将有一个对象,因此它将显示数据网格。 问题在于我无法选择行甚至勾选复选框。
如果有人有任何好的建议。欢呼声。
答案 0 :(得分:1)
使用Expander类,它具有WPF中可折叠面板的本机功能。 MSDN:http://msdn.microsoft.com/en-us/library/system.windows.controls.expander.aspx。
源StackOverflow回答:How to create a collapsible panel in WPF
但是,如果要使其可自定义,请改用HeaderedContentControl
类。 MSDN:http://msdn.microsoft.com/en-us/library/system.windows.controls.headeredcontentcontrol.aspx。一般的想法是在单击标题时修改内容可见性。
答案 1 :(得分:0)
实现此目的的一种快速方法是使用已建议的扩展器。将代码编辑为以下内容:
<Expander Header="{Binding ElementName=dgExpander, Path=SelectedItem.Name}" >
<DataGrid Name="dgExpander" ItemsSource="{Binding Path=ProductList, Source={StaticResource MainWindowViewModel}}" AutoGenerateColumns="false" Width="500" Height="80">
<DataGrid.Columns>
<DataGridTextColumn Header="Name" Binding="{Binding Name}" Width="100" />
<DataGridTextColumn Header="Code" Binding="{Binding Code}" Width="100" />
</DataGrid.Columns>
</DataGrid>
</Expander>
这可以作为一个例子。 HTH