gpt4 book ai didi

具有接口(interface)继承的 Winforms 数据绑定(bind)

转载 作者:行者123 更新时间:2023-12-01 05:45:55 31 4
gpt4 key购买 nike

在我可能因为这个问题而更改应用程序的域之前,我需要有人确认我所看到的内容。问题是,当对从另一个继承的接口(interface)进行数据绑定(bind)时,您看不到基本接口(interface)上的属性。

我正在开发一个使用数据绑定(bind)的 WinForms 应用程序。这是在 .net3.5 中,不,我不能使用 wpf。

无论如何,我有这样的设置。

public interface IClassOne
{
string Prop1 { get; set; }
}

public interface IClassTwo : IClassOne
{
string Prop2 { get; set; }
}

public abstract class ClassOne : IClassOne
{
public string Prop1 { get; set; }
}

public class ClassTwo : ClassOne, IClassTwo
{
public string Prop2 { get; set; }
}

基类将包含通用属性和逻辑。基本接口(interface)将具有这些通用属性,因此必须在每个具体实现上实现它们。

如果我将数据绑定(bind)到上面的类结构,我将绑定(bind)到 IClassTwo。问题是当我将数据绑定(bind)到 IClassTwo 时,我在 WinForms 的任何设计器操作中都看不到 Prop1。即使我绕过这个限制并获得一个绑定(bind)到 Prop1 的控件,它也不起作用。

但是,如果我绑定(bind)两个 ClassTwo,则数据绑定(bind)有效。

我不想处理具体的类,因为这会使使用模拟和测试变得太难。我也不想将所有内容都放在 IClassTwo 上,因为当我进行另一个具体实现时,我将不得不重复代码。

我需要知道的是这是否真的行不通。如果你知道为什么,那将是一个奖励。

谢谢
托尼

最佳答案

http://social.msdn.microsoft.com/Forums/en-US/winformsdatacontrols/thread/4151e6b6-44f7-45e2-9a8e-92c4f8539095/?prof=required

这是 MSDN 上发布的内容的摘要,说明为什么这不起作用。写这篇文章的海报上写着“邮资”。

No, it's not possible to bind to an interface! BindingSource offers some help to use a type as data source. Internally it will instantiate a BindingList<> instance using the type information. Also adding new items will work, but AddNew() will fail unless you subscribe the AddingNew event.

关于具有接口(interface)继承的 Winforms 数据绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2344760/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com