所以我还有另一个面条(对我而言).
我正在尝试在CMS中创建自己的自定义控件我只有部分源代码(即供应商提供给我的样本).基本上我已经创建了一个名为DataDefinitionContentextends 的类ControlBase.现在,从我从元数据中获取的东西,ControlBase扩展UserControl,所以我会认为这将没有戏剧性.任何人都可以解释为什么这可能不适合我?
我的课:
public partial class DataDefinitionContent : ControlBase, ICustomControl<DataDefinition>
{
... Stuff
}
Run Code Online (Sandbox Code Playgroud)
ControlBase:
using System;
using System.Web.UI;
namespace CMS.Web
{
public class ControlBase : UserControl
{
... Stuff
}
}
Run Code Online (Sandbox Code Playgroud)
我的ascx文件:
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="DataDefinitionContent.ascx.cs"
Inherits="CMS.Admin.WebUI.CustomControls.DataDefinitionContent, CoA.Admin.WebUI, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" %>
Run Code Online (Sandbox Code Playgroud)
我得到的错误:
解析器错误消息:此处不允许使用'CMS.Admin.WebUI.CustomControls.DataDefinitionContent,CoA.Admin.WebUI,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null',因为它不扩展类'System.Web. UI.UserControl".
第1行:<%@ Control Language ="C#"AutoEventWireup ="true"CodeBehind ="DataDefinitionContent.ascx.cs"
我有一个用户控件,其中包含其他几个用户控件.我正在使用MVVM.每个用户控件都有一个相应的VM.这些用户控件如何相互发送信息?我想避免在后面的xaml代码中编写任何代码.特别是我对控件(主用户控件内部)如何相互通信以及如何与容器用户控件进行通信感兴趣.
编辑:我知道使用事件代表将帮助我解决这个问题.但是,我想避免在xaml代码隐藏中编写任何代码.
在我正在进行的传奇中,我想要在一个干净的盒子上托管遗留应用程序,我已经遇到了下一个问题.一个页面依赖于一个大的.NET UserControl,它在新机器上只呈现为一个大的,灰色的textarea(右边缘的灰色垂直滚动条.检查源显示预期的object标记.)
这特别棘手,因为似乎没有人知道托管的UserControls和所有讨论数据回到2002-2004.
页面很简单:
<%@ Page language="c#" Codebehind="DataExport.aspx.cs" AutoEventWireup="false" Inherits="yyyyy.Web.DataExport" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<html>
<head>
<title>DataExport</title>
<link rel="Configuration" href="/xxxxx/yyyyy/DataExport.config">
</head>
<body style="margin:0px;padding:0px;overflow:hidden">
<OBJECT id="DataExport" style="WIDTH: 100%; HEIGHT: 100%; position:absolute; left: 0px; top:0px"
classid="yyyyy.Common.dll#yyyyy.Controls.DataExport"
VIEWASTEXT>
</OBJECT>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
引用的配置文件:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<sectionGroup name="yyyyy">
<section name="dataExport" type="yyyyy.Controls.DataExportSectionHandler,yyyyy.Common" />
</sectionGroup>
</configSections>
<yyyyy>
<dataExport>
<layoutFile>http://vm2/xxxxx/yyyyy/layout.xml</layoutFile>
<webServiceUrl>http://vm2/xxxxx/yyyyy/services/yyyyy.asmx</webServiceUrl>
</dataExport>
</yyyyy>
</configuration>
Run Code Online (Sandbox Code Playgroud)
我检查了什么:
对我来说可能看起来很可疑:
gacutil /ldl,本地下载缓存中没有任何内容.在工作机器上,在查看页面后运行相同的命令显示包括控制DLL和Aspose DLL的DLL的清单.我正在使用Visual C#2008 Express Edition创建WinForms用户控件.
一切都很顺利,直到我发现我可以List<>从属性窗口玩一个集合属性.在尝试更改集合并运行项目之后,我开始遇到错误并尽力将所有内容恢复到工作时的状态.
现在,当我尝试将控件的实例放在表单上时,我收到以下错误.
Failed to create component 'ColorPicker'. The error message follows:
'System.Runtime.Serialization.SerializationException: Type 'WindowsFormsApplication1.ColorPicker+ColorData' in Assembly 'Test, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' is not marked as serializable.
at System.Runtime.Serialization.FormatterServices.InternalGetSerializableMembers(RuntimeType type)
at System.Runtime.Serialization.FormatterServices.GetSerializableMembers(Type type, StreamingContext context)
at System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitMemberInfo()
at System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitSerialize(Type objectType, ISurrogateSelector surrogateSelector, StreamingContext context, SerObjectInfoInit serObjectInfoInit, IFormatterConverter converter)
at System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.Serialize(Type objectType, ISurrogateSelector surrogateSelector, StreamingContext context, SerObjectInfoInit serObjectInfoInit, IFormatterConverter converter)
at System.Runtime.Serialization.Formatt...'
Run Code Online (Sandbox Code Playgroud)
在解除此错误后,我开始反复出现以下错误,直到我使用任务管理器关闭Visual C#.
Code generation for property 'PaletteColors' failed. Error was: 'Type 'WindowsFormsApplication1.ColorPicker+ColorData' in Assembly 'Test, …Run Code Online (Sandbox Code Playgroud) 我写了一个小的System.Windows.Forms.UserControl,调用它userControl1,似乎按照我想要的方式工作.
在Visual Studio 2010的Designer中,我可以userControl1从工具栏拖动并将其放在我将调用的Windows窗体上testForm1.我可以连线userControl1,它可以正常工作.
但是,目的userControl1是能够在另一个UserControl中使用它,让我们调用它userControl2.
在Visual Studio 2010的Designer中,如果我userControl1从工具栏拖动并将其拖放到其中userControl2,Visual Studio 2010将崩溃,除了重新启动之外没有任何消息.

同时,在事件ID为1000的事件查看器中记录应用程序错误:
Faulting application name: devenv.exe, version: 10.0.40219.1, time stamp: 0x4d5f2a73
Faulting module name: unknown, version: 0.0.0.0, time stamp: 0x00000000
Exception code: 0xc00000fd
Fault offset: 0x0965f816
Faulting process id: 0x1580
Faulting application start time: 0x01cd90f84338e443
Faulting application path: C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe
Faulting module path: unknown
Report Id: 49ddcedf-fcf8-11e1-8016-00248103a942 …Run Code Online (Sandbox Code Playgroud) 我有FlowLayoutPanel几个UserControl.现在我希望一个控件始终位于我的底部FlowLayoutPanel.所以我想将我的UserControl添加到最低控件之上.有一种简单的方法可以在用户控件中插入FlowLayoutPanel吗?
我正在考虑删除底部的控件,添加我想要添加的控件并再次添加底部控件.但我不认为这是最好的方式.这里有没有人可以帮我提供一些如何做到这一点的信息?
我创建了一个UserControl并在其中定义了一个依赖属性Label.当我在控件中引用它时,我得到了错误The member "Label" is not recognised or is not accessible.我不明白的是,它在Windows手机上运行完美,但在将应用程序移植到Windows 8后,它会出现此错误.是否有不同的东西要做Windows 8用户控件?请帮忙.
user-controls dependency-properties microsoft-metro windows-8
使用Windows 7和Visual Studio 2010,我正在编写一个C#自定义UserControl.我在代码视图中进行了数周的编码,最近当我尝试切换到设计模式时,Visual Studio被绞死,"没有回应".我可以等一个小时,但仍然没有任何反应.单击关闭按钮,它会显示"您是否要等待,关闭,重新启动并向Microsoft发送信息"对话框.
有没有办法(堆栈)跟踪设计者试图执行的代码?也许设计时跟踪消息或断点?
我有一个孩子,UserControl包括多个文本框,标签,图像等.我需要在具有网格的父用户控件中填充此用户控件.
需要在父用户控件中填充的子用户控件的数量在运行时确定,并且可以更改.基本上,数量取决于搜索结果.所以它可以从0到n.
如何在父控件中填充我的子用户控件?或者是否有更好的替代方法来使用网格控件?
注意:我必须在我的ViewModel中执行此操作.