我想知道如何通过调用可用作该属性的“数据提供者”的方法来设置自定义用户控件的自定义属性。如何通过调用方法设置属性
我的意思是我想写的东西是这样的:
<CatsUserControl Cats={FindAllCats} />
,
其中CatsUserControl是用户控制我创建(其中有一个属性命名猫),和FindAllCats()是用C#编写的方法,它返回一个Cat对象列表。
这可能吗?
我很欣赏任何想法。谢谢!
编辑:
整个事情开始,因为我希望能够到一个列表分配给XAML的属性,你做<Button Content="Value"/>
(以同样的方式,除了在我的情况下,该值是一个更复杂类型比字符串,这是一个List<KeyValuePair<String, Boolean>>
)。
因为我没有找到任何方法来做到这一点,我认为可能会调用一个方法返回这个列表,并将返回的值赋给属性。
希望让事情更清楚。
“FindAllCats是一种方法”,罚款,但在什么情况下。它是'CatsUserControl'上的方法吗?或者它是当前DataContext的对象上的方法,还是它的某种类型的StaticMethod或...列表继续。请澄清一下,你的编辑没有清除这个。 – AnthonyWJones 2010-02-18 21:32:39
我一直在努力的一件事就是为什么任何人都希望有一个“FindAllCats”方法而不是“AllCats”属性。如果你有一个简单的绑定AllCats属性。那么__why__是否以FindAllCats的形式实现AllCats? (我明白,这个例子代码,但原则成立)。 – AnthonyWJones 2010-02-18 21:38:54
@AnthonyWJones:结果我所需要的只是一个简单的约束。事情是,我想将AllCats属性绑定到FindAllCats方法的返回值。我想这样做是因为“AllCats”属性是在另一个用户控件(UC2)中在XAML中创建的UserControl(UC1)的属性,创建UC1的每个UC2都有其自己的FindAllCats方法。我很抱歉发生混淆,并花了很长时间才发表回复。 – dsetton 2010-02-26 19:45:54