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 SelectedPushPushPinModel.Body} 绑定。

任何建议如何做到这一点?谢谢

4

2 回答 2

1

解决了,将 ContentControl 上的 DataContext 替换为 Content

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

感谢 sircodesalot 为我指明了正确的方向!

于 2013-08-07T06:38:26.463 回答
1

尝试这个:

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

看看它给了你什么(如果有的话)。此外,检查“输出”窗口是否有错误。

这一行:

<ContentControl DataContext="{Binding SelectedPushPinModel}">

仅当DataContextViewModel (Class) 的 已在页面上正确绑定更高时才有效。如果不是,那么Label上面提供的绑定将显示为空白。

于 2013-08-06T21:00:27.560 回答