【问题标题】:Multi select combobox with checkbox generic control in wpfwpf中带有复选框通用控件的多选组合框
【发布时间】:2014-08-06 18:21:52
【问题描述】:

我想创建一个控件,允许用户使用复选框从下拉列表中选择多个选项。我在 Google 上进行了搜索,我得到了一些链接,例如

http://code.msdn.microsoft.com/windowsapps/Multi-Select-ComboBox-in-cfbf1e22/view/SourceCode#content.

我发现这篇文章很有用,但我不能在每个应用程序中使用此控件,因为 ItemsSource 类型可能会在每个应用程序中更改。我想创建通用控件,任何可能具有不同 ItemsSource 的应用程序都将使用该控件。 如何创建可在任何应用程序中使用的通用控件?我想为此控件创建 DLL 并希望在所有应用程序中使用它。

【问题讨论】:

  • 为您想要的模板设置组合框项目的样式。
  • 也许将来会帮助某人多选组合框stackoverflow.com/questions/27753790/…
  • 如果您正在开发 Visual Studio 插件,您可以使用:Microsoft.VisualStudio.Diagnostics.UI.Controls.MultiSelectComboBox(程序集:Microsoft.VisualStudio.Diagnostics .Common.dll)

标签: c# wpf generics combobox


【解决方案1】:

这是给你的样本

<ComboBox xmlns:sys="clr-namespace:System;assembly=mscorlib">
    <ComboBox.Resources>
        <Style TargetType="ComboBoxItem">
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="ComboBoxItem">
                        <CheckBox>
                            <ContentPresenter />
                        </CheckBox>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    </ComboBox.Resources>
    <sys:String>item 1</sys:String>
    <sys:String>item 2</sys:String>
    <sys:String>item 3</sys:String>
    <sys:String>item 4</sys:String>
</ComboBox>

结果

【讨论】:

  • 感谢您的回复,但我想设计一个控件来支持绑定和我们可以在简单的组合框中完成的所有其他事情。
  • 这只是一个示例,您可以如何实现相同的目标。在示例中,您可以删除声明的项目并为 ItemsSource 应用绑定,这显然会将复选框应用于绑定集合中的所有对象。示例中的组合框完全支持绑定,但是复选框可能需要额外的代码。
  • 我怎样才能重用这个控件?我想创建可以在以后重用的自定义用户控件。
  • 您可能会列出最重要的功能/行为,让我们尝试将其包装在自定义控件中。
  • 当前用户应该能够选择多个仅需要的项目。我知道我需要创建依赖属性,如 itemssource、selectedItems 和 DisplayMemberpath 等,但我面临着使这些属性通用的问题。
猜你喜欢
  • 2013-06-15
  • 1970-01-01
  • 2014-10-14
  • 2011-09-24
  • 1970-01-01
  • 1970-01-01
  • 2018-10-19
  • 1970-01-01
  • 2012-01-27
相关资源
最近更新 更多