2

GameViewModel のビューを作成しました

私はそのようないくつかの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>

というわけで、これは監視可能なコレクション Players です。

ボタンのコンテンツを GameViewModel のプロパティにバインドする必要があります。

何を使えばいいですか?

4

1 に答える 1

8

基本的に、完全なビュー モデルを取得するには、より高いレベルに上がる必要があります。

何かのようなもの

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

または

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

ボタンのコンテンツを表すMyContentPropertyNameプロパティはどこにありますか。GameViewModel

注: スニペットから、両方のバインディングが同じ結果を生成するように見えます。両方を追加して、適切なコンテキストを見つけるためにどれだけ高くしたいかを選択できる例を作成します。

于 2012-05-28T21:16:55.443 に答える