针对Blend中的CLR对象的Silverlight DataBinding

时间:2009-05-05 16:37:59

标签: silverlight data-binding datatemplate blend

我喜欢Blend中的功能,您可以在其中设置数据绑定到CLR对象,并设计Silverlight控件/页面。我的问题是围绕创建将用作DataTemplate的用户控件。这一切在Blend中都很有效,但仅限于设计时。问题是,当我在Blend中编辑控件时,我绑定了一个文本框到CLR对象的属性,它给了我这个:

Text="{Binding Mode=OneWay, Path=TestAccount.Name, Source={StaticResource TestDataDS}}"

但是当我准备好运行应用程序,并在DataTemplate中使用该用户控件来表示列表框时,我需要它看起来像这样:

Text="{Binding Mode=OneWay, Path=Name}"

如何在Belnd中使用漂亮的绑定设计,但是当我准备好运行项目时,不必触摸/搜索和替换所有这些绑定?我正在寻找一种既可以在设计时也可以在运行时工作的方法。

谢谢,

2 个答案:

答案 0 :(得分:0)

要在Expression Blend中创建与CLR对象的数据绑定,您不需要使用“创建数据绑定”对话框的“DataField”选项卡。事实上,这样做是非常罕见的。

使用自定义路径表达式是最常用的方法。只需选中“使用自定义路径表达式”复选框,然后键入要绑定到的属性的名称。如果未指定数据上下文,则数据绑定将解析为您在任何对象恰好是DataContext时指定的路径。

如果要设置设计时DataContext,可以通过设置d:DataContext属性来做到这一点,确保正确定义xmlns:d =“...”

答案 1 :(得分:0)

如果您使用的是混合2,我建议您查看使用依赖注入的Jonas Follesoe's design time / run time blog post

如果你有幸使用Blend 3,那么check this out

当您在混合中设置绑定时,“显式数据上下文”选项卡是否可用?