私は、可視性が最初に折りたたみに設定され、後者がバインディングによって可視に設定されている場合、画像が表示されないという奇妙な状況に遭遇しています。折りたたまれた後に画像が表示されない
<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
を使用した場合、結果は
のように見え、私は画像
のプロパティをチェックするビジュアルツリーを開く場合
"Visible"(しかし明らかにそうではない)
私は、コンバータでVisibility.Hidden
を使用する場合、結果は私が望んでいたまさにです
のように見えます。しかし、私はアイコンが表示されていないときに余分なスペースを取ることを望んでいません。
これはどうしてですか?
同様の最小限の例を設定しても問題ありません。 –