首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >正确设置RelativeSource

正确设置RelativeSource
EN

Stack Overflow用户
提问于 2011-09-12 19:19:01
回答 2查看 191关注 0票数 1

我在一个xaml表单(MainWindow)上有一个组合框。

我在后面的代码中将Items源设置为ObservableCollection。为了填充组合框,我使用了相对源代码(它位于ItemsControl中),它工作得很好(没有它,如果没有填充):

代码语言:javascript
复制
ItemsSource="{Binding SelectableItems, RelativeSource={RelativeSource AncestorType={x:Type Window}}}"

我现在已经将ObservableCollection分解成一个单独的视图模型类,命名为'MainWindowViewModel',组合框不会填充。

我已经将MainWindow的DataContext设置为我的ViewModel,并检查它是否按预期填充了其他控件。

我应该如何构造RelativeSource才能填充组合框?

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-09-12 19:35:24

我需要在最后添加路径,如下所示:

代码语言:javascript
复制
ItemsSource="{Binding SelectableItems, RelativeSource={RelativeSource AncestorType={x:Type Window}}, Path=DataContext.SelectableItems}"
票数 1
EN

Stack Overflow用户

发布于 2011-09-12 23:47:01

您不想再使用RelativeSource了。如果不指定RelativeSource (或SourceElementName),则绑定将根据当前DataContext进行解析。因为DataContext是继承的,所以您的ItemsControl从父Window获取它的DataContext。因此,此绑定将针对您的视图模型进行解析。

代码语言:javascript
复制
ItemsSource="{Binding SelectableItems}"
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7387042

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档