gpt4 book ai didi

c# - 从 WPF 自定义 MarkupExtension 访问 "current class"

转载 作者:太空狗 更新时间:2023-10-29 20:03:52 24 4
gpt4 key购买 nike

我正在尝试编写一个自定义 MarkupExtension,通过为我提供一种在 XAML 中指定绑定(bind)的更好方法,让我的生活更轻松。但是我想知道是否有任何方法可以访问表示 MarkupExtension 在其中使用的文件的对象。

换句话说,假设我有一个 UserControl,它定义了我程序的数据模型的特定再现。这个控件有很多可视化的东西,比如网格、边框和总体布局。如果我在此 UserControl 中的某个元素的特定属性上使用我的 MarkupExtension,我想访问 UserControl 的实例,而不知道是什么输入它是(我计划使用反射)。

这有可能吗?

最佳答案

在 .NET 4.0 中,他们添加了 IRootObjectProvider能力,但不幸的是,在以前的版本中是不可能的。如果您使用的是 .NET 4.0,则可以执行以下操作:

public override object ProvideValue(IServiceProvider serviceProvider)
{
var rootObjectProvider = serviceProvider.GetService(typeof(IRootObjectProvider)) as IRootObjectProvider;
var root = rootObjectProvider.RootObject;
// do whatever you need to do here
}

关于c# - 从 WPF 自定义 MarkupExtension 访问 "current class",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3047448/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com