如何在datacontext更改时以编程方式更改绑定

时间:2013-09-04 17:42:04

标签: c# wpf binding .net-4.0

我有一个自定义控件,允许使用者发送将被解析为Inlines的标记,并尝试将给定的Command名称与其相应的ICommand匹配。我有这个工作,除了DataContext尚未设置的情况。我知道存储标记并在DataContextChanged上重新加载它是不合适的,但我似乎找不到任何有用的东西。我尝试BindingExpressionBinding无效,因为我没有办法将它们附加到Hyperlink

2 个答案:

答案 0 :(得分:1)

  

我知道存储标记并在DataContextChanged上重新加载它是不合适的

如果您要在ICommand内构建对DataContext个实例的绑定,这可能是唯一有意义的选项。

否则,在更改数据上下文时,您永远无法更正绑定。

答案 1 :(得分:0)

查看其他一些代码,我意识到这就是我需要做的全部:

hyperlink.SetBinding(Hyperlink.CommandProperty, new Binding(description.Command));

WPF代码通常会选择它...我需要反思才能确切地看到它的功能,但它确实有效。我无法直接设置Command属性,但这有效:)