2014-07-10 84 views
0

我有一個ItemsControl綁定到一個ObservableCollection並在ViewModelBase中有一個名爲IsVisible的屬性。綁定轉換器總是返回相同的數據值

我已經爲ItemsControl的ItemTemplate設置了DataTemplate。

<DataTemplate x:Key="MyDataTemplate"> 
    <Grid Margin="40,0,50,0" Background="Red" VerticalAlignment="Bottom"> 
     <Grid.RowDefinitions> 
      <RowDefinition Height="Auto"/> 
      <RowDefinition Height="Auto"/> 
     </Grid.RowDefinitions> 

     <TextBlock Text="{Binding Category}" 
        Style="{StaticResource MyTextBolckStyle}" 
        Visibility="{Binding IsVisible, Converter={StaticResource BooleanToVisibilityConverter}}"/> 
     <TextBox Grid.Row="1" Width="280" 
       BorderBrush="Black" 
       BorderThickness="2" 
       Height="60" 
       HorizontalAlignment="Left" 
       Text="{Binding IsVisible}" 
       Padding="5,5,0,0" 
       TextWrapping="NoWrap"/> 
    </Grid> 
</DataTemplate> 

,這是我BooleanToVisiblityCoverter

public object Convert(object value, Type targetType, object parameter, string language) 
    { 
     var val = System.Convert.ToBoolean(value); 

     if (val) 
     { 
      return Visibility.Visible; 
     } 

     return Visibility.Collapsed; 
    } 

的轉換方法,這是奇怪的結果我得到:

enter image description here

正如你可以看到每次IsVisible屬性是真的,TextBlock的可見性是可見的,它工作正常,但每當IsVisibe屬性爲false時,我期望Tex的可見性tBlock被摺疊,但在我看來,它是隱藏的,因爲有一個白色空間,而不是TextBlock,因爲我正在與銀光,沒有Visibility.Hidden枚舉那裏,我真的不知道什麼問題是,我很困惑。

所以請幫助我。任何幫助表示讚賞。

回答

0

什麼是您的轉換器定義?目前.NET Framework中已經添加3.0+

更新BooleanToVisibility轉換器:

我想你的代碼,它完美的作品在這裏。我的猜測是這個問題不在你在這裏發佈的代碼中,而是在別的地方。

+0

我沒有使用.NET框架,但我自己的轉換器。它是相同的。 – user3530012