2016-09-05 48 views
0

私は単純なダイアログ - Gridと4 TextBlockの2番目と3番目のプロパティの可視性をバインドしていますが、期待どおりに機能しません。つまり、条件付きダイアログを表示すると、メッセージが切り捨てられて表示されます。ダイアログの2つの亜種は以下の通りです:グリッド - 行とテキストブロックの表示を非表示にする

いくつかのテキスト

条件付きメッセージ1

BC

または

いくつかのテキスト

条件付きメッセージ2

B C

ダイアログのXAMLは以下のとおりです。

<Window 
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
      xmlns:cl="http://www.caliburnproject.org" 
      xmlns:local="clr-namespace:ABC.DrillDown" 
      xmlns:iwpf="clr-namespace:ABC.Mvvm.Wpf;assembly=ABC.Mvvm.Wpf" 
      xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity" 
      xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" x:Class="ABC.DrillDown.Views.MessageView" 
      Title="{Binding WindowTitle}" WindowStartupLocation="CenterScreen" MaxWidth="525" MinWidth="525" Background="White" MinHeight="275" MaxHeight="275"> 
    <Window.Resources> 
      <iwpf:BoolToVisibilityConverter x:Key="booleanToVisibilityConverter"/> 
     </Window.Resources> 
     <Grid Margin="0,0,0,0" VerticalAlignment="Top" HorizontalAlignment="Left" Width="514" > 
      <Grid.RowDefinitions> 
       <RowDefinition Height="Auto" MinHeight="64"/> 
       <RowDefinition Height="{Binding TransactionsModified, Converter={StaticResource booleanToVisibilityConverter}}"> 
        <RowDefinition.Style> 
         <Style TargetType="{x:Type RowDefinition}"> 
          <Setter Property="Height" Value="Auto" /> 
          <Style.Triggers> 
<!--Hide Row-1--> 
           <DataTrigger Binding="{Binding TransactionsModified}" Value="False"> 
            <Setter Property="Height" Value="0" /> 
           </DataTrigger> 
          </Style.Triggers> 
         </Style> 
        </RowDefinition.Style> 
       </RowDefinition> 
       <RowDefinition Height="{Binding TransactionsDeleted, Converter={StaticResource booleanToVisibilityConverter}}"> 
        <RowDefinition.Style> 
         <Style TargetType="{x:Type RowDefinition}"> 
          <Setter Property="Height" Value="Auto" /> 
          <Style.Triggers> 
<!--Hide Row-2--> 
           <DataTrigger Binding="{Binding TransactionsDeleted}" Value="false"> 
            <Setter Property="Height" Value="0" /> 
           </DataTrigger> 
          </Style.Triggers> 
         </Style> 
        </RowDefinition.Style> 
       </RowDefinition> 
       <RowDefinition Height="Auto" MinHeight="80"/> 
       <RowDefinition Height="Auto" MinHeight="30"/> 
       <RowDefinition Height="Auto" MinHeight="12"/> 
      </Grid.RowDefinitions> 
      <Grid.ColumnDefinitions> 
       <ColumnDefinition Width="Auto"/> 
      </Grid.ColumnDefinitions> 
      <TextBlock Grid.Row="0" Grid.Column="0" TextWrapping="NoWrap" HorizontalAlignment="Left" xml:space="preserve" VerticalAlignment="Top" Height="64" Width="478">Some Text   </TextBlock> 
       <TextBlock Grid.Row="1" Grid.Column="0" Text="{Binding TransactionsModified}" Visibility="{Binding TransactionsModified, Converter={StaticResource booleanToVisibilityConverter}}" TextWrapping="NoWrap" HorizontalAlignment="Left" xml:space="preserve" Width="0" > 
       Conditional Text - 1 
      </TextBlock> 

      <TextBlock Grid.Row="2" Grid.Column="0" Text="{Binding TransactionsDeleted}" Visibility="{Binding TransactionsDeleted, Converter={StaticResource booleanToVisibilityConverter}}" TextWrapping="NoWrap" HorizontalAlignment="Left" xml:space="preserve" Width="0"> 
       Conditional Text - 2 
      </TextBlock> 
      <TextBlock Grid.Row="3" Grid.Column="0" TextWrapping="NoWrap" HorizontalAlignment="Left" xml:space="preserve" Width="425"> 
       Text 3 

       Text 4 
      </TextBlock> 
      </Grid> 
      </Window> 

C 

答えて

1

あなたは間違って高さがあるRowDefinitionのカップルを持っているブール値に直接高さを結合もちろん

Height="{Binding TransactionsModified, Converter={StaticResource booleanToVisibilityConverter}}"> 

(あなたはこの部分を削除する必要があります)は意味がありません:あなたはすでに多くを持っています次の部分では合理的なトリガーとなります(一見するときれいに見えます)

関連する問題