WPF 自定义控件中,集合属性怎么做?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WPF 自定义控件中,集合属性怎么做?相关的知识,希望对你有一定的参考价值。
在WPF中,自定义一个控件,在这个控件里有一个属性是集合类型的list<object>类型的,但是怎么定义依赖属性,而且怎么为其写方法,就是和listbox里面的items一样的,我想在使用这个自定义控件的时候,可以在前台添加多个东西到这个属性定义的地方?希望大神指导?
private static DependencyPropertyKey AquariumContentsPropertyKey =
DependencyProperty.RegisterReadOnly(
"AquariumContents",
typeof(List<FrameworkElement>),
typeof(Aquarium),
new FrameworkPropertyMetadata(new List<FrameworkElement>())
);
public List<FrameworkElement> AquariumContents
get return (List<FrameworkElement>)GetValue(AquariumContentsProperty);
这个是MSDN上的,我要处理的和这个差不多,上面的代码知识定义了DP和属性,然后 方法怎么写?比如一些简单的属性,有一个方法的,而这个地方并没有!求指教……
http://msdn.microsoft.com/zh-cn/library/system.windows.dependencyproperty.aspx追问
对于wpf的以来属性,我这个都会的,定义一般的属性,都还可以,但是定义集合属性,就不会了,就是我上面所说的那样,listbox那样的,怎么写相应的方法?求指教?
追答具体问题具体分析,你想写什么样的控件,也许只是template就可以解决。
追问那我说的简单点吧!就比如一个自定义控件中有一个listbox,然后别人用这个控件的时候,要通过属性来向listbox中添加东西,我想知道我该怎么写属性,和方法,来实现别人向listbox中添加多个人内容,这个肯定要用到集合类型的,所以求助!
追答那你就在里面添加一个listbox不就行了吗?
追问我是说,我自定义的控件中有listbox,但是你是要写依赖属性的,别人用你这个控件的时候,是要向里面添加东西的,这个依赖属性和相应的方法怎么写!………………
追答不是可以直接访问你的listbox么?要不就把你的源码发到共享看看。问题根本就没问清楚,我问你到底想定义一个什么样的控件,为什么要定义这个控件,又为什么要在里面定义个listbox?
追问我已经把代码放在了补充问题上,求指教!
追答你那代码能说明什么问题?直接说你最终要实现的效果,看有什么更好的办法。
追问要实现的东西很简单的,就是一个自定义的控件中有一个listbox的控件,我只是想在引用这个控件的时候,可以向这个自定义控件里面这个listbox中添加东西,这个肯定是要写依赖属性的……这个我说一遍,你应该就直接明白了,就是集合类型的属性吗?
追答自定义的控件中有一个listbox的控件---这就是个问题!谁叫你做这控件了,从用户的角度,谁在乎你里面是不是一个listbox,谁又在乎你是否自定义了个控件?
请你从用户的角度来考虑问题,要实现什么功能?
自定义控件中有listbox只是我一个大的自定义控件中的一个小的部分,只是想通过属性往里面添加东西的,只是以前没有接触,集合类型(list)的属性,所以现在不知道怎么写?我的题目其实就已经说的很明白了,你就直接说你会不会吧?
追答不会问问题,我也不想回答了,看其他人怎么回答。
追问我的问题问的很明白了,就是集合类型的依赖属性,因为现在WPF做的人还不是很多,所以没有多少人做过相关的,不会也正常,不怪你!不过还是要 谢谢你!
追答你看我的回答是没做过的?开什么玩笑?
做WPF页面的时候我想通过C#代码触发自定义控件中的事件怎么做
如题
是否可以在.cs中通过C#代码触发自定义控件中自定义的事件?
这样就注册到了Click事件. <Button Click="Button_Click"/>
在.CS里面直接注册就好了,不明白,这有难度吗?追问
我的意思是在.CS里面掉自定义控件事件,而不是在xaml里面掉!!
参考技术B 要贴代码才知道,其实WPF同Winfrom的设计思路上相同(个人认为)只是界面设计方式改了.!! 在后台代码中可以根据ID或Name(这里记不太清楚了,你可以看看)直接调用! 参考技术C public event EventHandler<EventArgs> OnXXXXX;if ( this.OnXXXXX != null )
this.OnXXXXX(this,new EventArgs());
参考技术D 没做过啊,也想做做网页
以上是关于WPF 自定义控件中,集合属性怎么做?的主要内容,如果未能解决你的问题,请参考以下文章