0

ビューモデルでこのプロパティを取得しました:

        private PushPinModel selectedPushPinModel;
    public PushPinModel SelectedPushPinModel
    {
        get { return selectedPushPinModel; }
        set
        {
            selectedPushPinModel = value;
            RaisePropertyChanged(() => SelectedPushPinModel);
        }
    }

そして、ビューをバインドして、選択されているビューを表示したいと思います。

        <ContentControl DataContext="{Binding SelectedPushPinModel}" VerticalAlignment="Top">
        <ContentControl.ContentTemplate>
            <DataTemplate>
                <Grid Height="100" VerticalAlignment="Top">
                    <Grid.RowDefinitions>
                        <RowDefinition Height="20*"/>
                        <RowDefinition Height="38*"/>
                    </Grid.RowDefinitions>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="91*"/>
                        <ColumnDefinition Width="389*"/>
                    </Grid.ColumnDefinitions>
                    <Border Opacity="0.95" Width="480" Padding="0,0,0,0" BorderThickness="0" HorizontalAlignment="Left" BorderBrush="Transparent" Background="White" Grid.ColumnSpan="2" Grid.RowSpan="2"/>
                    <Image Width="70" Height="70" HorizontalAlignment="Center" VerticalAlignment="Center" Source="{Binding Icon}" Grid.Column="0" Grid.Row="0" Grid.RowSpan="2" />
                    <TextBlock Text="{Binding Header}" Grid.Column="1" Grid.Row="0" Style="{StaticResource TextboxLabelStyle}"/>
                    <TextBlock Text="{Binding Body}" Grid.Column="1" Grid.Row="1" Style="{StaticResource DefaultTextBlockStyle}"/>
                </Grid>
            </DataTemplate>
        </ContentControl.ContentTemplate>
    </ContentControl >

しかし、私はそれを機能させることができません。バインディングがビューに表示されず、バインディング エラーも発生しません。単一のオブジェクトにバインドする正しい方法ですか? {Binding SelectedPushPinModel.Body} と直接バインドするのではなく、このようにする方がはるかに汚いです。

これを達成する方法について何か提案はありますか? ありがとう

4

2 に答える 2

1

これを試して:

<Label Content="{Binding SelectedPushPinModel}" />

それがあなたに与えるものを見てください(もしあれば)。また、「出力」ウィンドウでエラーを確認してください。

この行:

<ContentControl DataContext="{Binding SelectedPushPinModel}">

DataContextViewModel (クラス) の がページの上の方に適切にバインドされている場合にのみ機能します。そうでない場合、Label上記のバインディングは空白で表示されます。

于 2013-08-06T21:00:27.560 に答える
1

解決し、ContentControl の DataContext を Content に置き換えました

<ContentControl Content="{Binding SelectedPushPinModel}" VerticalAlignment="Top">

私を正しい方向に向けてくれたsircodesalotに感謝します!

于 2013-08-07T06:38:26.463 に答える