2014-11-03 71 views
0

我在C#代码像这样设置Itemsxaml如何绑定到不同的源?

this.DefaultViewModel["Items"] = items; 

,我已经在xaml页面定义它是这样的:

DataContext="{Binding DefaultViewModel, RelativeSource={RelativeSource Self}}" 

现在我可以在一个GridView

<GridView ItemsSource="{Binding Items}"> 
    <GridView.ItemTemplate> 
     <DataTemplate> 
      <Grid Width="{Binding customWidth}"> 
       <!-- The rest--> 
      </Grid> 
     </DataTemplate> 
    </GridView.ItemTemplate> 
</GridView> 
使用 Items

但问题是,我想内网使用不同的来源:

this.DefaultViewModel["customWidth"] = 300; 

如何使内部网格使用与其父级GridView不同的源?谢谢。

+0

你可以在任何'FrameworkElement'的实例上设置[DataContext](http://msdn.microsoft.com/en-US/library/windows/apps/windows.ui.xaml.frameworkelement.datacontext.aspx) – 2014-11-03 20:22:47

回答

2

你可以给一个名称到您的网页(例如,x:名称=“我的空间”),然后

<GridView ItemsSource="{Binding Items}"> 
    <GridView.ItemTemplate> 
     <DataTemplate> 
      <Grid Width="{Binding DefaultViewModel.customWidth, ElementName=myPage}"> 
       <!-- The rest--> 
      </Grid> 
     </DataTemplate> 
    </GridView.ItemTemplate> 
</GridView> 

也就是说,你可以使用的ElementName走出当前绑定范围。