【发布时间】:2010-03-25 15:58:28
【问题描述】:
在我的项目中,我使用 ComboBox 和自定义对象(如员工)并使用 DisplayMemberPath="Description"。 这一切都按预期完美运行。
因为这个应用程序的目标是与触摸屏一起使用,所以我必须设置滚动条的样式并使其更宽,这意味着我必须为 ScrolViewer 创建一个新模板。结果也很好。
当我必须为我需要的 ComboBox 创建一个新的 ControlTemplate 以便我可以将 ScrollViewerControlTemplate 添加到 ComboBox 的 ScrollViewer 时,问题就出现了。我使用 Blend 为我生成 ControlTemplate,然后将 ScrollViewerControlTemplate 绑定到 ComboBox ControlTemplate 中的 ScrollViewer。
非常好,唯一的问题是 ComboBox 在控件的下拉部分中显示正确的文本,但控件的 ToggleButton 部分显示的对象类型为 [NameSpace].Employee。
我尝试更改 ContentPresenter 但没有太大成功。
<ContentPresenter
Content="{TemplateBinding SelectionBoxItem}"
ContentTemplate="{TemplateBinding SelectionBoxItemTemplate}"
ContentStringFormat="{TemplateBinding SelectionBoxItemStringFormat}"
Margin="{TemplateBinding Padding}"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
任何帮助将不胜感激。
【问题讨论】:
-
我没有时间弄清楚到底是什么问题,但我解决问题的方法是创建一个新窗口,将一个 ComboBox 拖到页面上并再次生成 Xaml 并复制所有将其放入 App.Xaml 文件中。我想我错过了一些导致问题的样式。
标签: wpf combobox wpf-controls