TECHNOLOGIES
FORUMS
JOBS
BOOKS
EVENTS
INTERVIEWS
Live
MORE
LEARN
Training
CAREER
MEMBERS
VIDEOS
NEWS
BLOGS
Sign Up
Login
No unread comment.
View All Comments
No unread message.
View All Messages
No unread notification.
View All Notifications
Answers
Post
An Article
A Blog
A News
A Video
An EBook
An Interview Question
Ask Question
Forums
Monthly Leaders
Forum guidelines
Pedro Navarro
NA
1
0
Using a DataGrid inside a WPF ComboBox
Dec 2 2008 4:03 PM
Hello:
I'm working on a project which requires the use of a DataGrid table as an item in ComboBox. It is needed so the users can have a full description of the choices they are about to make. I have succeeded in adding the DataGrid, populated with data from an XML document, to the ComboBox. When clicked, the ComboBox displays the table. The problem I have is in how to "connect" the chosen item in the table to the popup in the ComboBox.
I have set the ComboBox as follows:
<ComboBox IsSynchronizedWithCurrentItem="True" HorizontalAlignment="Right" Margin="0,0,-103.709,157" VerticalAlignment="Bottom" Width="212" Height="28" x:Name="dgInComboBox" Style="{DynamicResource ComboBoxStyle3}">
<ComboBox.DataContext>
<Binding Source="{StaticResource InventoryData}"/>
</ComboBox.DataContext>
</ComboBox>
The popup settings inside "ComboBoxStyle3":
<Popup Focusable="false" AllowsTransparency="true" IsOpen="{Binding Path=IsDropDownOpen, RelativeSource={RelativeSource TemplatedParent}}" Placement="Bottom" PopupAnimation="{DynamicResource {x:Static SystemParameters.ComboBoxPopupAnimationKey}}" x:Name="PART_Popup">
<Microsoft_Windows_Themes:SystemDropShadowChrome MaxHeight="{TemplateBinding MaxDropDownHeight}" MinWidth="{TemplateBinding ActualWidth}" x:Name="Shdw" Color="Transparent">
<Border x:Name="DropDownBorder" Background="{DynamicResource {x:Static SystemColors.WindowBrushKey}}" BorderBrush="{DynamicResource {x:Static SystemColors.WindowFrameBrushKey}}" BorderThickness="1">
<!--This is the DataGrid contained within the bottom combo box-->
<!--<dg:DataGrid IsSynchronizedWithCurrentItem="True" x:Name="dgInComboBox" ItemsSource="{TemplateBinding ItemsSource}">-->
<dg:DataGrid IsSynchronizedWithCurrentItem="True" x:Name="dgInComboBox" AutoGenerateColumns="False"
ItemsSource="{Binding Source={StaticResource InventoryData},XPath=/Inventory/Books/Book}">
<dg:DataGrid.DataContext>
<Binding Source="{StaticResource InventoryData}" />
</dg:DataGrid.DataContext>
<dg:DataGrid.Columns>
<dg:DataGridTextColumn DataFieldBinding="{Binding XPath=Title}" Header="Title"/>
<dg:DataGridTextColumn DataFieldBinding="{Binding XPath=Summary}" Header="Summary"/>
</dg:DataGrid.Columns>
</dg:DataGrid>
</Border>
</Microsoft_Windows_Themes:SystemDropShadowChrome>
</Popup>
So what I need is to populate the popup with the first column of the table (if only I could make the popup work).
Thanks in advance,
Pedro
Reply
Answers (
0
)
locking a window
WPF user controls