如何在数据上下文更改时以编程方式更改绑定

本文关键字:方式更 绑定 编程 数据 上下文 | 更新日期: 2023-09-27 18:30:07

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

如何在数据上下文更改时以编程方式更改绑定

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

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

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

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

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

WPF代码一般都是这样。。。我需要反思一下,看看它到底做了什么,但它确实有效。我无法直接设置Command属性,但这起到了作用:)