问题标签 [system.componentmodel]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
632 浏览

.net - 使用实体框架进行模型验证

我有一个实体框架模型类,它具有创建该模型类实例的视图。我想验证该类的日期,以便用户添加满足特定条件的日期。我有一个元数据类,它使用System.ComponentModelSystem.ComponentModel.DataAnnotations命名空间中的属性。

那里有任何属性可以用来执行验证,还是有其他方法可以做到这一点?

0 投票
1 回答
1832 浏览

c# - C# 使用和编译 Windows.Form

我正在用 C# 编写一个 GUI。我正在按照这个简单的教程开始。要编译,我需要引用 System.Windows.Forms.DLL System.Drawing.DLL,所以我输入

但是,我收到这样的错误:

我已经在我的路径中添加了“c:\Windows\Microsoft.NET\Framework\v4.0.30319”。我不知道为什么它告诉我在我已经拥有它时要引用它。

0 投票
1 回答
816 浏览

c# - 如何正确使用 Properties.Settings?

我正在使用 Visual Studio 2010,其中有一个名为 Utilities 的项目,其中包含我settings.settings想从解决方案中的其他项目访问的文件。

在另一个项目中,我想让用户使用PropertyGrid. 我还想使用System.ComponentModel设置对其进行自定义。我试图应用ComponentModel设置,例如DescriptionAttributeSettings.Designer.cs有效的文件中,但正如文件注释中所说,重新生成时对该文件的更改。

所以我的问题如下:

  1. 如何Properties.Settings从另一个项目访问?
  2. 如何在PropertyGrid不更改Settings.Designer.cs文件的情况下自定义?
  3. 如前所述,我让用户从表单管理设置。但是,我想在用户按下取消按钮时恢复这些值。我怎么做?
0 投票
1 回答
186 浏览

c# - 重写 Visual Studio 对组件派生类的处理

有什么方法可以告诉 Visual Studio 我想将我的类视为普通类而不是组件?我的班级是这样声明的:

我想,因为WebClient派生自System.ComponentModel.Component,所以 Visual Studio 假定它是一个组件。因此,双击解决方案资源管理器中的文件会显示设计器界面而不是代码。此外,如果我在上面的声明之前添加另一个类,在解决方案资源管理器中双击文件会给我一个“可以设计类 WebDavClient,但不是文件中的第一个类”错误。

在所有情况下,我只想将这个类视为普通类,并且永远不需要设计器表面。有没有办法覆盖 Visual Studio 的默认行为?

0 投票
1 回答
1053 浏览

c# - IListSource 类型的 AttributeProvider 做什么?

我有一个包含此属性的用户控件:

此属性如何影响属性?(除了设计器中漂亮的组合框)。
是否强制属性仅接收实现 IListSource 或 IEnumerable 的值?
你能从 BCL 中找到解释属性效果的代码片段吗?


来源:
AttributeProviderAttribute 类
IListSource 接口
如何:在 Windows 窗体控件中应用属性

0 投票
1 回答
196 浏览

c# - System.ComponentModel.IContainer 需要 1 秒来声明?

我目前正在使用 Red Gate 的性能分析器来优化应用程序。我一直在运行 VS 生成的声明,并且总是需要大约一秒钟的时间来声明。它也被设置为null。我不明白为什么这需要一秒钟。我知道 VS Designer 可以将它用于某些组件,但有没有办法减少这些声明的数量?解释为什么会发生这种情况也很好。

探查器截图

0 投票
4 回答
22662 浏览

c# - 如何在运行时将属性级属性添加到 TypeDescriptor?

我想向对象的属性添加一些以 PropertyGrid 为中心的自定义属性,以提供更丰富的编辑、隐藏一些值并将它们分组到类别中,因为我正在使用的那个类不提供这样的功能,我什么也做不了关于它。

确实,它是用于生成代码的 MS 的应用程序设置,因此您不能以任何方式扩展它的属性。请参阅我的另一个问题:运行时 AppSettings.settings 编辑器对话框

0 投票
0 回答
74 浏览

.net - 覆盖父属性的 DefaultValue

我继承了一个控件,目的是覆盖某些属性的DefaultValue属性的值。但是,要做到这一点,我需要添加一些样板来为父类的属性创建“代理”,如下所示:

我的问题是,有没有更好的方法来覆盖 DefaultValue 属性的值而不使用它?只要它在 Visual Studio 表单设计器中可用/可见。

0 投票
0 回答
145 浏览

c# - 设计时表示

我有兴趣尝试让一个项目在设计时表现出来,但不确定我是否能实现我想要实现的目标。我已经构建了一个新的 webpart,一个图表。这个 webpart 有一个ChartSettings,它有许多可通过 EditorPart 配置的属性,并且在设置中有许多SeriesSettings

Chart 将 ChartSettings 标记为 Personalizable,因此它是序列化的。这在网络上运行良好,设置被保留并且可以正确修改和恢复。但是,如果在其他工具(例如 SharePoint 设计器)中打开页面,则会由于转换而开始出现错误。输出 html 看起来很模糊,如下所示:

MyNamespace.ChartSettings 无法转换为 ChartSettings 的实例。这可以通过属性上的 TypeConverters 来解决,并在我可以生成的转换器中使用诸如序列化之类的东西:

然而,我真正想在 SharePoint 设计器等工具中的 html 中实现的是:

有谁知道这是否可能,如果可以,如何实现这一点我遇到了以下问题,但不确定使用哪个,以及以什么组合来实现我想要的和我想要的建议。

  • [TypeConverter(typeof(ExpandableObjectConverter))]
  • [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
  • [内容属性]

编辑

我几乎设法到达那里:

这给了我:

而不是

0 投票
1 回答
6350 浏览

c# - 使用 System.ComponentModel

我在理解 C# 中容器/组件模型如何相互交互时遇到了一些困难。我知道组件如何包含一个站点对象,该对象具有有关容器和组件的信息。但是,假设我有以下代码:

这没有问题,它定义了一个容器(实体)和一个包含在其中的组件(位置)。

但是,如果我调用p.Site.Container,它将返回 Entity,但作为 IContainer。也就是说,(Console.WriteLine(p.Site.Container as Entity).Foo);如果我想访问 Foo,我必须明确地做一些事情。这似乎相当麻烦。

我错过了什么,还是有更好的方法来做我想做的事?