DependencyProperty绑定到以编程方式创建的ListBox

时间:2012-03-05 17:42:30

标签: c# wpf silverlight xaml data-binding

我是WPF / Silverlight的新手,所以很难描述我尝试做的事情。也许这就是我无法在Stackoverflow和Google上找到答案的原因。

我尝试以编程方式绑定到DependyProperty

public static DependencyProperty MyDependencyProperty
        = DependencyProperty.RegisterAttached(
                            "...", 
                            typeof(...),
                            typeof(...),
                            new PropertyMetadata(...)
                      );
xmlns:MyXMLNS="clr-namespace:...."

<ListBox MyXMLNS:MyClass.MyDependencyProperty="...">
    // ....
</ListBox>

这已经按预期工作了。

如何以编程方式完成此操作?

1 个答案:

答案 0 :(得分:3)

如果你知道如何处理XAML,代码中的格式总是相同的,只是非逐字翻译。

<ListBox local:Attached.Test="{Binding PathToProperty)"/>
var binding = new Binding("PathToProperty");
listBox.SetBinding(Attached.TestProperty, binding);

如果在ElementName等绑定上设置其他属性,则应在SetBinding之前设置它们。 (此SetBinding方法只是为了方便(如果您只设置Binding.Path,那么即使是another one),对于非FrameworkElements,您需要BindingOperations.SetBinding