【问题标题】:Bind objects of different types to combobox in WPF将不同类型的对象绑定到 WPF 中的组合框
【发布时间】:2014-09-09 17:19:20
【问题描述】:

要求: 1. 在组合框中显示所有推荐类型的列表。 (例如报纸、黄页、客户) 2. 选择客户端后,将显示一个弹出窗口,他们可以在其中搜索系统内的客户端。 3. 从弹出窗口中,用户可以选择一个客户端。 4. 弹出窗口将被关闭,客户端名称将填充到组合框中。

我几乎完成了实现,其中要求 1 到 3 已完成。但是,我坚持使用数字 4。原因是,组合框绑定到 refertype 对象。但是,从弹出窗口中选择的项目属于“客户端”类型。现在,我只是在单独的文本块中显示所选客户端。但是,客户希望它显示为组合框本身的一部分。

不知道怎么做。

任何帮助将不胜感激。

谢谢 巴拉

【问题讨论】:

  • 您的问题是如何将不同类型绑定到组合框?因为似乎一切正常!只是也许你需要Convertor 或者Interface
  • 好吧,我正在将引用类型(具有引用类型 ID 和引用类型名称)绑定到组合框。但是,现在我必须绑定一个从弹出窗口中选择的客户端类型的对象(仅当引用类型为客户端时才显示)。在组合框中仍显示其他选项的同时,我无法做到这一点。我不知道这是否可能。

标签: wpf combobox object


【解决方案1】:

您可以拥有一个 BaseReferralTypeViewModel,NewspaperViewModel、YellowPagesViewModel 和 ClientViewModel 都继承自该模型。在 xaml 中的组合框资源中声明 DataTemplates,它描述了如何在组合框中显示这些类型。在前两种类型的情况下,它可能只是一个文本块。 在 ClientViewModel 的情况下,创建一个实例,但不要使用任何客户端数据对其进行初始化。 DataTemplate 可以检测到这一点并仅显示引用类型。 一旦通过弹出窗口使用客户端数据初始化 ClientViewModel,DataTemplate 将检测到这一点并显示名称。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-03
    相关资源
    最近更新 更多