我喜欢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中使用漂亮的绑定设计,但是当我准备好运行项目时,不必触摸/搜索和替换所有这些绑定?我正在寻找一种既可以在设计时也可以在运行时工作的方法。
谢谢,
答案 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
当您在混合中设置绑定时,“显式数据上下文”选项卡是否可用?