2014-11-03 107 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走出當前綁定範圍。