gpt4 book ai didi

c# - .NET 中的强类型控件

转载 作者:太空狗 更新时间:2023-10-29 18:33:44 25 4
gpt4 key购买 nike

我在 Windows 窗体应用程序上工作了很长一段时间,我真的发现自己在 GUI 代码中进行的类型转换比在底层业务代码中进行的类型转换要多。

如果您看到 ComboBox 控件接受一些模糊的“对象”作为它的项目,那么我的意思就很明显了。然后你离开并可能显示一些 DisplayMember 和一个 ValueMember 等等。

如果我想稍后检索该值,我需要将我的对象类型转换回原来的样子。就像字符串获取值一样

string value = (string)combobox1.SelectedItem;

既然 Framework 中有泛型已经​​有一段时间了,我仍然想知道为什么标准工具箱中没有一个控件是泛型的。

我还发现自己一直在使用 ListViewItems 上的 .Tag 属性来保留显示的域对象。但每次我需要访问该对象时,我都需要另一个类型转换。

为什么我不能只用 ListViewItem 类型的项目创建 ComboBox 或 ListView

我是不是漏掉了什么,或者这只是又一个没有经过深思熟虑的控件的例子?

最佳答案

虽然对“未使用泛型”的批评不能公平地应用于在它们存在之前开发的控件......人们必须对 WPF 控件感到疑惑(.NET 3.0 中的新控件,在 .NET 2.0 中的泛型之后)。

我检查了 AddChild ComboBox 中的方法.它需要一个对象参数 (ugh)。

此控件旨在主要通过 XAML 使用。这样做是因为无法在 XAML 中指定类型参数吗? (另外,没有办法在 XAML 中指定类型参数吗?)

很抱歉没有明确的“为什么”答案,只是分享在使用 UI 时需要转换的常见痛苦。

关于c# - .NET 中的强类型控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/331357/

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