2012-05-25 2 views
0

Я сделал вид моего GameViewModelПривязка к свойству ViewModel от шаблона

У меня есть некоторые XAML, как этот

<UserControl.Resources> 
    <DataTemplate DataType="{x:Type ViewModels:PlayerViewModel}"> 
     <StackPanel> 
       <Button 
        Content="{Binding ?????}" 
        Command="{Binding WrongAnswerCommand}" /> 
       <TextBlock 
         Text="{Binding Name}" /> 
     </StackPanel> 
    </DataTemplate> 
</UserControl.Resources> 
<Grid> 
    <Grid.RowDefinitions> 
     <RowDefinition/> 
    </Grid.RowDefinitions> 
    <ListBox Grid.Row="0" 
      ItemsSource="{Binding Players}" 
      IsSynchronizedWithCurrentItem="True"> 
    </ListBox> 
</Grid> 

Итак, это наблюдаемая коллекция игроков.

Мне нужно, чтобы содержимое кнопки привязывалось к свойству GameViewModel.

Что следует использовать?

ответ

2

В принципе, вам нужно перейти на более высокий уровень, чтобы получить полную модель обзора.

Что-то вроде

Content="{Binding DataContext.MyContentPropertyName, 
        RelativeSource={RelativeSource FindAncestor, 
               AncestorType={x:Type ListBox}}}" 

Или

Content="{Binding DataContext.MyContentPropertyName, 
        RelativeSource={RelativeSource FindAncestor, 
              AncestorType={x:Type UserControl}}}" 

Где MyContentPropertyName это свойство в , который представляет содержимое кнопки.

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

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