2016-07-19 3 views
0

가시성이 처음 접힌 상태로 설정되고 바인딩이 표시되도록 설정되면 이미지가 표시되지 않는 이상한 상황이 발생합니다.접힌 후 이미지가 표시되지 않습니다.

<ListView Grid.Row="0" ItemsSource="{Binding SystemCheckEntries}"> 
      <GridViewColumn DisplayMemberBinding="{Binding State}" /> 
      <GridViewColumn> 
       <GridViewColumn.CellTemplate> 
        <DataTemplate> 
         <Image Source="info.png" 
           Height="14" 
           ToolTip="{Binding Message}" 
           Visibility="{Binding Message, Converter={StaticResource StringNullOrEmptyToVisibilityConverter}}"/> 
        </DataTemplate> 
       </GridViewColumn.CellTemplate> 
      </GridViewColumn> 
     </GridView> 
    </ListView.View> 
</ListView> 

변환기 :

public class StringNullOrEmptyToVisibilityConverter : IValueConverter 
{ 
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture) 
    { 
     return string.IsNullOrEmpty((string) value) ? Visibility.Collapsed : Visibility.Visible; 
    } 

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) 
    { 
     throw new NotImplementedException(); 
    } 
} 

내가 컨버터 Visibility.Collapsed를 사용하는 경우, 결과는 같은
enter image description here

을보고 나는 시각적 트리를 열면 이미지의 속성을 확인하는
enter image description here
"Visible"이라고 가정합니다 (하지만 분명히 아닙니다). 내가 컨버터 Visibility.Hidden를 사용하는 경우

이 결과는 보이는
내가 원하는 정확히 무엇 enter image description here

있다. 그러나 아이콘이 보이지 않을 때 아이콘이 추가 공간을 차지하지 못하도록하고 싶습니다.

그렇다면 왜 이런 일이 발생합니까?

+0

비슷한 최소한의 예제를 설정하고 잘 작동합니다. –

답변

1

몇 가지 추측 : 첫 번째 항목의 너비가 축소되어 있기 때문에 () 열 너비가 0으로 설정됩니다. 이미지가있는 새 항목이 추가되지만 열에 너비가 없으므로 표시되지 않습니다.

:이 동작을 확인했습니다.

+0

윈도우가 렌더링 된 후 크기를 50x50으로 설정하려고했습니다. 디스플레이 레이아웃 애들을 켰습니다. 50x50 상자는 분명히 볼 수 있지만 이미지 나 툴팁이 아닙니다. – Steve

+0

크기는 50x50 이었습니까? 그리고 어쨌든 고정 크기를 설정하면'축소 '의 핵심은 무엇입니까? –

+0

theres는 브라우저와 같이 런타임 중에 요소의 속성을 수정할 수있는 vs2015의 새로운 도구입니다. 실행 중 이미지의 크기가 수정되어 여전히 표시되지 않습니다. – Steve

관련 문제