【发布时间】:2011-02-10 14:26:17
【问题描述】:
我有一个这样的数据绑定 XAML 控件:
<UserControl>
<TextBlock Text="{Binding Text}" />
</UserControl>
并希望它像这样呈现为“绘图”:
<UserControl>
<TextBlock Text="Actual text value" />
</UserControl>
有谁知道如何从任意控件中提取图形?
更新: 这个问题似乎不是很清楚。所以我试着解释一下。 输入是一个带有数据绑定的 XAML 控件。现在我想将其转换为纯 XAML 而无需任何数据绑定。输出可以写入磁盘并由任何理解 XAML 的应用程序显示,而无需绑定到任何东西。
所以解决方案应该是这样的:
FrameworkElementinput = (FrameworkElement)XamlReader.Read(inputFile);
input.DataContext = dataObject;
FrameworkElement output = ConvertToNative(input);
XamlWriter.Write(outputFile, output);
我正在寻找“ConvertToNative”的实现
【问题讨论】:
-
对绘画的意思感到困惑?在您的示例中,绑定很简单,是对 Text 属性中应提供的内容的运行时解决方案;而您在第二个示例中在编译时提供值
-
您在何时何地想要这个?从 Visual Studio 2010 Designer 内部产生的 DesignTime 数据?
-
@Aaron 我不知道确切的术语。对于“绘图”,我的意思是纯 XAML,没有任何扩展,例如绑定。 “绘图”应该可以在数据未知的上下文中加载。 (就像外国申请一样。)
-
@Meleak 这需要在运行时完成
-
@Michael 当您将数据绑定到模型上的给定属性时,数据可以来自任何地方,并将在运行时执行。所以你可以有 {Binding GetMeSomethingFarFarAway} 其中 GetMeSomethingFarFarAway 是你模型上的一个属性,它反过来调用一个服务,然后调用 Flickr 并获取一个图像名称。
标签: c# wpf xaml data-binding binding