【问题标题】:convert from Control to Func<Control> for TabbedView - Devexpress Windows Form从 Control 转换为 Func<Control> for TabbedView - Devexpress Windows Form
【发布时间】:2018-04-20 09:39:30
【问题描述】:

我正在将 Devexpress 用于 Windows 窗体应用程序。 所以我想替换这个sn-p:

tabbedView.AddDocument(userControl);
tabbedView.ActivateDocument(userControl);

用这个 sn-p:

tabbedView.AddOrActivateDocument(doc => doc.Caption == e.Element.Name, userControl);

这里的问题是这个方法请求Func&lt;Control&gt;而不是Control

我找到了Func&lt;Object,Object&gt; 文档和规范,但找不到如何从Object 转换为其Func&lt;Object&gt;

感谢您的帮助。谢谢。

【问题讨论】:

  • Func&lt;Control&gt; 表示它不带参数并返回一个Control,类似于public Func&lt;Control&gt; getControl = () =&gt; new Control();
  • 你可以通过传递一个 lambda 表达式来解决这个问题。试试这个tabbedView.AddOrActivateDocument(doc =&gt; doc.Caption == e.Element.Name, () =&gt; userControl);
  • 谢谢先生!这解决了我的问题,但我还不明白这个概念。
  • 这就是我所做的并解决了我的问题。非常感谢。
  • 在发布此类问题时只是一个建议,攻击文档链接总是好的。通过实际阅读文档,我能够找出解决方案:)

标签: c# windows forms devexpress


【解决方案1】:

Func&lt;Control&gt; 表示它不带参数并返回一个Control,类似于

public Func<Control> getControl = () => new Control();

您可以通过传递 lambda 表达式来解决此问题。试试这个

tabbedView.AddOrActivateDocument(doc => doc.Caption == e.Element.Name, () => userControl);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-22
    • 1970-01-01
    相关资源
    最近更新 更多