2014-03-03 66 views
0

我已经将viewmodel设置为页面的datacontext,并将绑定透视项目与Individual集合属性绑定。然而,绑定工作正常时,有数据,但最初当数据不可用时,它不能正常工作,我基本上想隐藏ItemsControl下的文本框,但不知道这个代码有什么问题。当绑定源为空时,控件未被隐藏

<phone:PivotItem Header="Tweets" Margin="{StaticResource PivotItemMargin}" DataContext="{Binding Tweets}"> 
       <ScrollViewer> 
        <StackPanel> 
         <ItemsControl ItemsSource="{Binding Result}"> 
          <ItemsControl.ItemTemplate> 
           <DataTemplate> 
            <Grid Margin="0,0,0,30"> 
             <Grid.ColumnDefinitions> 
              <ColumnDefinition Width="Auto"/> 
              <ColumnDefinition Width="*"/> 
             </Grid.ColumnDefinitions> 
             <Grid.RowDefinitions> 
              <RowDefinition Height="35" /> 
              <RowDefinition Height="75" /> 
             </Grid.RowDefinitions> 

             <Image Grid.Column="0" Grid.RowSpan="2" Source="{Binding userImage}" Margin="0,0,10,0" MaxWidth="100" MaxHeight="100" Stretch="UniformToFill" Visibility="{Binding userImage, Converter={StaticResource NullToVisibilityConverter}}" /> 
             <TextBlock Grid.Column="1" Grid.Row="0" Text="{Binding name}" Foreground="{StaticResource AppForegroundHighlightTextBrush}" TextWrapping="NoWrap" TextTrimming="WordEllipsis" FontSize="{StaticResource TitleFontSize}"/> 
             <TextBlock Grid.Column="1" Grid.Row="1" Text="{Binding ShortTitle}" Foreground="{StaticResource AppForegroundSubtextBrush}" TextWrapping="Wrap" VerticalAlignment="Top" FontSize="{StaticResource SubtextFontSize}"/> 
            </Grid> 
           </DataTemplate> 
          </ItemsControl.ItemTemplate> 
         </ItemsControl> 
         <TextBlock DataContext="{Binding Tweet}" Grid.Row="2" Text="all Tweets" FontWeight="Bold" Visibility="{Binding hasMore,Converter={StaticResource BooleanToVisibilityConverter}}"/> 
        </StackPanel> 
       </ScrollViewer> 
      </phone:PivotItem> 

回答

2

DataContext时为空,结合将使用TargetNullValue属性指定值。因此,尝试设置的Visibility结合CollapsedTargetNullValue财产和你won't even need converter

....... 
<Image 
    ....... 
    Visibility="{Binding userImage, TargetNullValue=Collapsed}" 
    /> 
....... 
+0

嘿嘿,谢谢。所有这些日子我都无用地创建了NullValueToVisibilityConverter。 :) – Ankit

+0

不客气:)但再次查看您的代码,它看起来更像是Windows Phone(Silverlight)而不是WPF。我只在WPF上测试过它,虽然 – har07

+1

是它的Windows手机,但它在它上面工作得很好。 – Ankit

相关问题