我在写标记扩展。我有这样的XAML当前绑定值
<TextBlock Text="{ui:Test SomeInfo}" />
和带构造函数的TestExtension带一个字符串参数。我得到“SomeInfo”字符串,所以一切都找到了。现在我想嵌套扩展和写东西像
<TextBlock Text="{ui:Test {Binding PropName}}" />
并且它不起作用。我不得不添加构造函数,该构造函数接受System.Windows.Data.Binding类型的一个参数。
现在我需要知道
- 我应该如何检索来自绑定对象的电流值?
- 我应该什么时候这样做?我应该每次在ProvideValue方法中订阅某种方式的变化还是要求这个值?
UPDATE1 PROPNAME应该反对的TextBlock的DataContext的解决。
UPDATE2刚刚发现相关的问题:How do I resolve the value of a databinding?
其实,我想使用Textblock的DataContext。 – adontz
@adontz:正如我所说,你可能最好使用一个普通的绑定与转换器,让自己的MarkupExtension内的绑定工作是一个痛苦。 –
我接受这种痛苦,因为它为标记用户提供了对我来说更重要的更一致的语法。 – adontz