2013-08-06 4 views
0

Я получил эту недвижимость в моем ViewModel:Привязка к одному объекту в ViewModel

 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}, который более грязный.

Любые предложения, как это сделать? Благодаря

ответ

1

решаемые он заменил DataContext на ContentControl с содержанием

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

Благодаря sircodesalot указал мне в правильном направлении!

1

Попробуйте это:

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

посмотреть, что дает вам (если что-нибудь). Также проверьте окно «выход» на наличие ошибок.

Эта линия:

<ContentControl DataContext="{Binding SelectedPushPinModel}"> 

будет работать только если DataContext для ViewModel (класс) был надлежащим образом связан выше на этой странице. Если это не так, то привязка Label, представленная выше, будет отображаться пустой.

+0

Да, привязка этикеток отлично работает. Как заставить его работать с contentcontrol? – robertk

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