2017-02-24 21 views
0

我有一個ListView與Orientation="Horizon"這意味着DataTemplate將看起來像「列」而不是行。一切工作正常,ListView顯示滾動條,當我有很多不能在屏幕上顯示的列。我爲DataTemplate設置了MinWidth。我試圖完成的是,如果我的source有少於3個對象來擴展Datatemplate的寬度以適應ListView的屏幕。 我知道我可以用得到窗口的當前寬度:WPF - 父視圖更改寬度時回撥

System.Windows.SystemParameters.PrimaryScreenWidth; 
System.Windows.SystemParameters.PrimaryScreenHeight; 

我需要的是當窗口的大小,以更新的DataTemplates寬度改變要執行的回調方法。這個功能是否存在於WPF中?有什麼替代品嗎?

+0

看看這個問題:http://stackoverflow.com/questions/911243/wpf-extend-last-column-of -listviews-gridview – caesay

+0

區別在於問題的列是靜態的。 – BlackM

回答

1

我需要的是當更改窗口的大小以更新DataTemplates寬度時要執行的回調方法。這個功能是否存在於WPF中?

您可以爲WindowListView處理SizeChanged事件。

只要元素大小發生變化,就會調用此事件。然後,您可以更改事件處理程序中列的寬度,例如:

public partial class MainWindow : Window 
{ 
    public MainWindow() 
    { 
     InitializeComponent(); 
     SizeChanged += (s, e) => 
     { 
      GridView gv = listView.View as GridView; 
      gv.Columns[0].Width = ...; 
     }; 
    } 
}