我已经通过大量的尝试和论坛帖子,但我仍然无法解决我的问题。
ISSUE 显示来自实体框架 dbcontext 的数据的组合框不显示所选值,但对项目列表有效。所选项目仅显示
System.Data.Entity.DynamicProxies.Equipment_37EBC79AEAECCCCD132FD15F1C9172DF4DD402B322A9C5762AE640F03887F702
但是组合框的列表正确显示....
SETUP 我有一个包含名为设备的类的 dbcontext。设备有两个我要显示字符串标签的项目;地点名称;
选定的项目被破坏,列出作品
<ComboBox x:Name="cbxCopyTo" Grid.Row="2" Grid.Column="1"
IsEditable="True" IsTextSearchEnabled="True" IsTextSearchCaseSensitive="False"
ItemsSource="{Binding}">
<ComboBox.SelectedValue>
<DataTemplate>
<TextBlock VerticalAlignment="Center" HorizontalAlignment="Center" >
<TextBlock.Text>
<MultiBinding StringFormat="{}{0} ({1})">
<Binding Path="Tag" />
<Binding Path="Location.Name" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
</DataTemplate>
</ComboBox.SelectedValue>
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock VerticalAlignment="Center" HorizontalAlignment="Center" >
<TextBlock.Text>
<MultiBinding StringFormat="{}{0} ({1})">
<Binding Path="Tag" />
<Binding Path="Location.Name" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
您可以在上面看到我什至尝试明确设置所选值;但它没有用。当我尝试使用转换器时,我确实注意到,当我将转换器放入其中时,从未调用过 SelectedItem 或 SelectedValue。
如果我忽略位置(从数据源拖放获得),则以下内容有效。这会正确显示列表和所选项目。
<Label Grid.Row="1" Grid.Column="0" Content="Copy From:" />
<ComboBox x:Name="cbxCopyTo" Grid.Row="1" Grid.Column="1"
IsEditable="True" IsTextSearchEnabled="True" IsTextSearchCaseSensitive="False"
DisplayMemberPath="Tag" ItemsSource="{Binding}">
<ComboBox.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel/>
</ItemsPanelTemplate>
</ComboBox.ItemsPanel>
</ComboBox>
请帮忙; 我将不胜感激!