2013-04-12 40 views
5

Tôi có hai hộp văn bản trong khung nhìn WPF. Điều thứ hai được ẩn bằng cách sử dụng một phương thức trên mô hình khung nhìn (GetNoteTwoVisibility) nếu không có văn bản để hiển thị - không có vấn đề ở đó. Trong trường hợp này, mặc dù tôi muốn thay đổi khoảng thời gian cột của hộp văn bản đầu tiên để sử dụng cả hai cột. Tôi đã thử thêm một phương thức 'GetNoteOneColumnSpan' (trả về một int) nhưng điều này không hoạt động.WPF ràng buộc với Grid.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}" /> 

Có cách nào để thực hiện việc này không? Cảm ơn

Trả lời

7

Bạn không cần thuộc tính ràng buộc khác cho Grid.ColumnSpan. Bạn có thể thử một cái gì đó như:

<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

hoạt động hoàn hảo (một khi tôi nhớ phương thức Hiển thị của mình đã trả về Hiển thị enum và không phải là bool!), Cảm ơn. – Nick

+0

Chào mừng bạn. Tôi hy vọng bạn có một lý do để có tài sản System.Windows.Visibility trong ViewModel của bạn hơn là sử dụng một giá trị bool trong ViewModel và sử dụng một công cụ chuyển đổi trong xaml. – Viv

+0

Không có lý do, đoán nó chỉ là cách ứng dụng được viết, sẽ xem xét sử dụng các trình chuyển đổi mặc dù nếu đó là thực hành tốt hơn, cảm ơn – Nick

Các vấn đề liên quan