2014-07-10 2 views
0

ObservableCollection에 바운드 된 ItemsControl이 있고 ViewModelBase에 IsVisible이라는 속성이 있습니다.바인딩 변환기는 항상 datatemplate에서 동일한 값을 반환합니다.

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; 
    } 

의 변환 방법이 내가 얻을 이상한 결과 : 매번에게에서 IsVisible 속성을 볼 수 있듯이

enter image description here

True이면 TextBlock 표시가 표시되고 잘 작동하지만 IsVisibe 속성이 false 일 때마다 TexBlock 표시가 tBlock은 무너 지지만 내게는 TextBlock 대신 공백이 있고 은색으로 작업하기 때문에 보이지 않습니다. 숨겨진 열거 형이 있으므로 실제로 숨겨진 열거 형이 무엇인지 모릅니다. 문제는 내가 혼란 스럽다.

제발 도와주세요. 어떤 도움을 주셔서 감사합니다.

답변

0

변환기 정의 란 무엇입니까?

내가 코드를 시도하고 완벽하게 여기서 일하는 :

업데이트 3.0 이미 .NET 프레임 워크에 추가 된 BooleanToVisibility 컨버터가있다. 내 생각 엔 문제는 여기에 게시 한 코드가 아니라 다른 곳에서 게시 한 것입니다.

+0

.NET 프레임 워크를 사용하고 있지는 않지만 자체 변환기를 사용하고 있습니다. 그것은 꽤 똑같습니다. – user3530012

관련 문제