【发布时间】:2012-04-13 07:15:25
【问题描述】:
我正在尝试以编程方式将我的 WPF 按钮的 Content 属性绑定到我之前使用给定路径定义的动态资源(业务对象)。到目前为止,我尝试了以下方法,但没有成功:
我的业务对象被定义为资源:
<Window.Resources>
<env:PartyType x:Key="myParty" FullName="JOHN"/>
</Window.Resources>
我尝试像这样以编程方式绑定到我的按钮:
Binding binding = new Binding();
binding.Source = this.Resources["myParty"];
binding.Path = new PropertyPath("FullName");
btn.SetBinding(ContentProperty, binding);
但显然,当我序列化为 XAML 时,它试图序列化整个派对对象,而我只想保留对我的资源的绑定引用,所以这个选项不起作用。 我的第二个选择是:
btn.SetResourceReference(ContentProperty,"myParty");
这会被序列化为 XAML:
<av:Button Content="{av:DynamicResource myParty}"/>
但我不知道如何指定我的 Path=FullName,以便它可以显示 Party.FullName 而不是 Party.Type()。
关于如何实现这一点的任何想法?
提前致谢,
【问题讨论】:
标签: c# wpf xaml binding code-behind