首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >设置多个Datacontext

设置多个Datacontext
EN

Stack Overflow用户
提问于 2011-03-07 05:09:17
回答 1查看 1.1K关注 0票数 0

我正在尝试找出如何在XAML页面中正确设置多个DataContexts。我有一个基本的集合,它是我在后台代码中创建的,并将AutoCompleteBoxItemSource绑定设置为它。同时,我有另一个datacontext在网格中设置labelsDataSource。如果我设置这个datacontext,AutoCompleteBox的itemsSource绑定就会丢失。AutoCompleteBox就在这个网格里面。我用这种方式将DataContext直接赋值给objetc:

代码语言:javascript
复制
MyAutoCompleteBox.DataContext = this;

我想知道有没有更好的方法?提前感谢您的帮助!

设置AutoComplete框:

代码语言:javascript
复制
<sdk:AutoCompleteBox x:Name="MyAutoCompleteBox" IsTextCompletionEnabled="True" ItemsSource="{Binding Items}" />

代码隐藏:

代码语言:javascript
复制
public IList<string> Items
    {
        get;
        private set;
    }

    public Basic_ChildWindow()
    {
        InitializeComponent();
        Items = new List<string>();
        Items.Add(@"One");
        Items.Add(@"Two");
        Items.Add(@"Three");

        DataContext = this;
    }

同一个XAML页面中的另一个datacontext,AutoCompleteBox在该网格中:

代码语言:javascript
复制
<Grid x:Name="grdBasic_ChildWindow_Right" Style="{StaticResource GridStyle}" DataContext="{Binding Source={StaticResource LabelsDataSource}}">
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-03-07 06:52:10

我不太明白你的问题--什么是"labelsDataSource"?

但是,如果您发布的是所有代码,没有更多内容,只需从网格中删除datacontext/绑定即可。网格不需要datacontext集(它只是一个可视容器--与数据无关)。

因此,请更改以下内容:

代码语言:javascript
复制
<Grid x:Name="grdBasic_ChildWindow_Right" Style="{StaticResource GridStyle}" DataContext="{Binding Source={StaticResource LabelsDataSource}}"> 

要这样做:

代码语言:javascript
复制
<Grid x:Name="grdBasic_ChildWindow_Right" Style="{StaticResource GridStyle}"> 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5213425

复制
相关文章

相似问题

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