一千萬個為什麽

搜索

如何使用子綁定中的父內容控件?


我目前有以下代碼:


    
        
        
    


    
        
            
            
        
        
            
        
       
       
    

綁定到SectionViewModel ItemsControl的ViewModels屬性是StringViewModel的列表。我想將每個StringViewModel插入到ItemsControl中的某種內容控件中。目前我只是讓每個StringViewModel創建自己的Grid,但這會使事情不對齊。我想將這些項插入到ItemsControl中的某種內容控件中,它不一定是網格,但它應該在ItemsControl中。我怎樣才能做到這一點?我也在使用MVVM Light跟蹤MVVM。

編輯:我修改了XAML以反映我目前如何設置它。

最佳答案

如果要控制包含模板中的寬度,可以使用繼承的附加屬性:

public class WidthInformation
{
  //Use propa snippet to create LabelWidth property with this metadata:
   ... RegisterAttached("LabelWidth", typeof(double), typeof(WidthInformation), new FrameworkPropertyMetadata
   {
     Inherits = true
   });
}

它將如此使用:

      
        
    
        
      
      
  
          
          
  

使用DockPanel將導致TextBox寬度自動填充剩余空間。

另一方面,如果您希望兩列相對於彼此具有相同的百分比大小,則可以在列上使用星形大小調整:

      
  
    
      
      
    
          
          
  

一個非常簡單的解決方案是對DockPanel內部的寬度進行硬編碼,而不是使用附加屬性:

      
  
    
          
  

最後,如果您需要根據標簽大小調整寬度,則可以使用具有共享大小調整的網格:

      
        
    
        
      
      
  
    
      
      
    
          
          
  

WPF充滿了各種可能性!

轉載註明原文: 如何使用子綁定中的父內容控件?

猜你喜歡