Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 从代码中获取自定义MarkupExtension_Wpf - Fatal编程技术网

Wpf 从代码中获取自定义MarkupExtension

Wpf 从代码中获取自定义MarkupExtension,wpf,Wpf,是否有任何方法可以从代码隐藏中访问自定义MarkupExtension?例如 <TextBox Name="text" Text="{my:CustomExtension}" /> 我希望能够访问“CustomExtension”实例 我已经创建了自己的轻量级绑定,但这是解决方案中唯一真正的差距。如果我从代码中设置上述内容,那么我可以将CustomExtension实例保留在附加属性中,但在上述情况下,XAML解析器不会这样做。标记扩展在需要属性时被“解析”,在那一刻,它们将被

是否有任何方法可以从代码隐藏中访问自定义MarkupExtension?例如

<TextBox Name="text" Text="{my:CustomExtension}" />

我希望能够访问“CustomExtension”实例


我已经创建了自己的轻量级绑定,但这是解决方案中唯一真正的差距。如果我从代码中设置上述内容,那么我可以将CustomExtension实例保留在附加属性中,但在上述情况下,XAML解析器不会这样做。

标记扩展在需要属性时被“解析”,在那一刻,它们将被它们通过
ProvideValue
提供的值替换。除非您向传递它的
MarkupExtension
添加一些内容,否则您可能无法获得实例。

感谢您的回复。你说它们被它们提供的价值所取代是什么意思?是不是(在上面的示例中)TextBox没有对CustomExtension的引用,但CustomExtension可能在ProvideValue()调用后缓存了对TextBox的引用(用于持续更新)?因此,TextBox保存ProvideValue()提供的值,它与任何对CustomExtension的引用(我相信它从未有过)完全独立。有什么想法可以添加到MarkupExtension来传递吗?:)@Fil:您的扩展是否继承自
绑定
?在这种情况下,它将有点不同,并且将在绑定对象上设置绑定表达式。在这种情况下,可以使用文本属性上的。表达式的
ParentBinding
可能包含(装箱的)
CustomExtension