0

Я поставил Items в C# код, как это:xaml Как связать с другим источником?

this.DefaultViewModel["Items"] = items; 

и я определил его в xaml страницы, как это:

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

Теперь я могу использовать Items в GridView

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

Но проблема в том, что я хочу, чтобы внутренняя сетка использовала другой источник:

this.DefaultViewModel["customWidth"] = 300; 

Как сделать внутреннюю сетку использовать другой источник, чем ее родительский GridView? Благодарю.

+0

Вы можете установить [DataContext] (http://msdn.microsoft.com/en-US/library/windows/apps/windows.ui.xaml.frameworkelement.datacontext.aspx) в экземпляре для любого элемента FrameworkElement –

ответ

2

Вы можете дать название вашей страницы (например, х: Name = «MYPAGE»), а затем

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

То есть, вы можете использовать ELEMENTNAME, чтобы выйти из текущего обязательного объема.

Смежные вопросы