我正在尝试我的第一个Windows Form项目,以前完全基于Web,并遇到一些问题.我想将一个对象列表绑定到TabControl并创建Tabs,然后从每个选项卡的click事件中访问数据绑定值.
我想要绑定的对象是
public class TreeNodeItem
{
private NTree<string> node;
public TreeNodeItem(NTree<string> node)
{
this.node = node;
}
public string Value
{
get { return this.node.data; }
}
}
Run Code Online (Sandbox Code Playgroud)
NTree节点表示对象中的节点,该节点对树结构中的数据进行建模.我想为列表中的每个对象创建一个选项卡,其Value属性绑定到Tab Text属性.其他帖子提到绑定到控件的ItemsSource属性,但Visual Studio没有给我这个属性.
任何帮助将不胜感激.
干杯
斯图尔特
我有一个<div>使用以下代码附加了click事件的元素:
var id = "someId";
var elem = document.getElementById("elemId");
elem.addEventListener("click", function() { someFunction(id); }, false);
Run Code Online (Sandbox Code Playgroud)
稍后我会复制元素并将其添加到其他部分DOM,但需要先删除该click事件
var elem = document.getElementById("elemId");
elem.removeEventListener("click", ???? , false);
Run Code Online (Sandbox Code Playgroud)
我不确定如何引用监听器,到目前为止我没有尝试过从元素中删除事件.
有任何想法吗?
干杯
斯图尔特
考虑以下课程:
public class AClass : ISomeInterface
{
public static int AProperty
{
get { return 100; }
}
}
Run Code Online (Sandbox Code Playgroud)
然后我有另一个课程如下:
public class AnotherClass<T>
where T : ISomeInterface
{
}
Run Code Online (Sandbox Code Playgroud)
我通过以下方式实例:
AnotherClass<AClass> genericClass = new AnotherClass<AClass>();
Run Code Online (Sandbox Code Playgroud)
如何在没有具体的AClass实例的情况下从我的genericClass中获取AClass.AProperty的静态值?
这似乎是一个标准的事情,但我很难找到一个清晰简单的解决方案.
我希望能够为已经初始化的Select2添加一个或多个附加选项.
我使用的是旧版本的Select2,但不确定版本是什么.
我希望能够使用反射来遍历不实现接口的对象的属性
基本上我想实现与此相反的如何使用反射来获取显式实现接口的属性?
原因是我想将对象映射到另一个对象,其中任何未由接口定义的属性都被添加到List of KeyValuePairs.
我正在基于从处理程序返回的数组构建jQuery中的复选框项列表.
包含元素是.listContainer下面的元素,然后我想要添加到其中的每个动态元素采用.listContainerItem元素的形式.每个项目都有基于创建它的数组项的复选框值和标签.
<div class="listContainer">
<div class="listContainerItem">
<input type="checkbox" value="1" />
<div class="listContainerItemLabel">Checkbox 1</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
在传递数组的函数的位置,创建它的最有效方法是什么?我一直在努力完成它,如下所示,但很快遇到了主要的性能问题.
function AddItemToListContainer(item) {
var currentItems = $j("#listContainerAvailable .listContainerItem");
if ($j.grep(currentItems, function (e) { return $j(e).find(":checkbox:first").val() == item.Id; }).length === 0) {
labelDiv = $j("<div />").addClass("listContainerItemLabel").html(item.Text);
itemToAdd = $j("<div />").addClass("listContainerItem").append("<input type=\"checkbox\" value=\"" + item.Id + "\" />").append(labelDiv);
currentItems.append(itemToAdd);
}
}
Run Code Online (Sandbox Code Playgroud)
我看过.map函数,但不确定如何实现它.有人能指出我正确的方向吗?
假设我有一个返回以下内容的查询
ID SomeValue
1 a,b,c,d
2 e,f,g
Run Code Online (Sandbox Code Playgroud)
我想返回如下:
ID SomeValue
1 a
1 b
1 c
1 d
2 e
2 f
2 g
Run Code Online (Sandbox Code Playgroud)
我已经有一个UDF调用Split,它将接受一个字符串和一个分隔符,并将其作为一个名为[Value]的列的表返回.鉴于此,SQL看起来如何实现这一目标?
我正在为RadioButtonFor提供额外的重载,并希望将键值对添加到传入的HTML属性中.
作为一个例子,我传递的内容如下:
new { id = "someID" }
Run Code Online (Sandbox Code Playgroud)
当我使用HtmlHelper.AnonymousObjectToHtmlAttributes方法似乎是我正在寻找的建议时,它产生了一个包含4个项目的字典,其中包含"Comparer","Count","Keys","Values"的键.然后我尝试使用Reflection来迭代"键"和"值"中的值,但是也无法使其工作.
基本上我想做的就是能够将htmlAttributes转换为IDictionary,添加一个项目,然后将其传递给常规的RadioButtonFor方法.
编辑:这是我真正想要做的事情.提供一个名为isDisabled的重载,以便能够设置单选按钮的禁用状态,因为这不能使用HTML属性直接轻松完成,因为disabled = false仍然会禁用被禁用的标记并禁用无线电.
public static MvcHtmlString RadioButtonFor<TModel, TProperty>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TProperty>> expression, object value, bool isDisabled, object htmlAttributes)
{
var linkAttributes = System.Web.Mvc.HtmlHelper.AnonymousObjectToHtmlAttributes(htmlAttributes);
Dictionary<string, object> htmlAttributesDictionary = new Dictionary<string, object>();
foreach (var a in linkAttributes)
{
if (a.Key.ToLower() != "disabled")
{
htmlAttributesDictionary.Add(a.Key, a.Value);
}
}
if (isDisabled)
{
htmlAttributesDictionary.Add("disabled", "disabled");
}
return InputExtensions.RadioButtonFor<TModel, TProperty>(htmlHelper, expression, value, htmlAttributesDictionary);
}
Run Code Online (Sandbox Code Playgroud) 所以我有一个继承如下界面的基本类
public interface IRefDataItem
{
int RefID { get; set; }
string Code { get; set; }
}
public class RACodeItem : IRefDataItem
{
public int RefID { get; set; }
public string Code { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
然后我有一个方法返回一个RACodeItem列表,我试图将其分配给IRefDataItem的List,如下所示
List<IRefDataItem> codes = GetRACodes( ); //GetRACodes returns List of RACodeItem
Run Code Online (Sandbox Code Playgroud)
我在这里得到一个错误,指出不能隐式地将RACodeItem的类型List转换为IRefDataItem的List,尽管RACodeItem继承了IRefDataItem
我错过了一些简单的东西吗?如何将T列表转换为T实现的接口类型的列表?
干杯
斯图尔特
谁能看到我下面做错了什么?该类型具有服务方法试图访问的公共属性,为什么它不被反射拾取?
Public class SomeClass
{
private YetAnotherClass yetAnotherClass;
public SomeClass(SomeOtherClass otherclass)
{
this.yetAnotherClass = otherclass.SomeProperty;
}
public YetAnotherClass SomeProperty
{
get { return this.yetAnotherClass; }
}
}
Public class ServiceClass
{
public void DoSomething(SomeClass someclass)
{
Type type = someclass.GetType();
FieldInfo[] fieldsinfo = type.GetFields(BindingFlags.Public | BindingFlags.Instance); // returns empty collection
FieldInfo fieldinfo = type.GetField("SomeProperty"); // returns null reference exception
}
}
Run Code Online (Sandbox Code Playgroud)
干杯
斯图尔特
c# ×5
asp.net ×3
reflection ×3
asp.net-mvc ×1
generics ×1
html-helper ×1
javascript ×1
jquery ×1
sql ×1
t-sql ×1
tabcontrol ×1
winforms ×1