2013-04-12 13 views
5

WPF kılavuz görünümünde iki metin kutusu var. İkincisi, görüntülenecek herhangi bir metin yoksa görüntü modelinde (GetNoteTwoVisibility) bir yöntem kullanılarak gizlenir - sorun yoktur. Bu durumda, her iki sütunu kullanmak için ilk metin kutusunun sütun açıklığını değiştirmek istiyorum. Bir 'GetNoteOneColumnSpan' yöntemi (int dönen) eklemeyi denedim, ancak bu çalışmaz.Gp'ye bağlanma WPF.ColumnSpan

<TextBox Name="Note1" Grid.Column="0" Text="{Binding NotesView.NoteOne}" Grid.ColumnSpan="{Binding NotesView.GetNoteColumnSpan}" /> 
<TextBox Name="Note2" Grid.Column="1" Text="{Binding NotesView.NoteTwo}" Visibility="{Binding NotesView.GetNoteTwoVisibility}" /> 

Bunu yapmanın bir yolu var mı? Teşekkürler

cevap

7

Grid.ColumnSpan için başka bir ciltleme özelliğine ihtiyacınız yoktur.

<TextBox Name="Note1" 
      Grid.Column="0" 
      Text="{Binding NotesView.NoteOne}"> 
    <TextBox.Style> 
    <Style TargetType="{x:Type TextBox}"> 
     <Setter Property="Grid.ColumnSpan" 
       Value="1" /> 
     <Style.Triggers> 
     <DataTrigger Binding="{Binding NotesView.GetNoteTwoVisibility}" 
         Value="False"> 
      <Setter Property="Grid.ColumnSpan" 
        Value="2" /> 
     </DataTrigger> 
     </Style.Triggers> 
    </Style> 
    </TextBox.Style> 
</TextBox> 
<TextBox Name="Note2" 
      Grid.Column="1" 
      Text="{Binding NotesView.NoteTwo}" 
      Visibility="{Binding NotesView.GetNoteTwoVisibility}" /> 
+0

mükemmel bir şekilde çalıştığınız gibi (Görünürlüğüm yöntemini hatırladığımda bir Görünürlük enumunu döndürdüm ve bir boole döndürmedi!), Teşekkürler. – Nick

+0

Hoşgeldiniz. ViewModel'ınızda System.Windows.Visibility Property'nin ViewModel'de bir bool değeri kullanmasına ve xaml'de bir dönüştürücü kullanmasına neden olmasının bir nedeninin olmasını umuyorum. – Viv

+0

Bunun bir nedeni, sanırım uygulamanın nasıl yazıldığını, daha iyi bir uygulama olsa bile dönüştürücülerin kullanımına bakacağız, teşekkürler – Nick