2017-02-24 1 views
0

인 경우 콜백 Orientation="Horizon"이있는 ListView가 있습니다. 즉 DataTemplate은 행 대신 "열"처럼 보일 것입니다. 모든 일을 잘 작동하고 화면에 보여줄 수없는 열이 많이있을 때 ListView에 스크롤 막대가 표시됩니다. DataTemplate에 MinWidth을 설정했습니다. 달성하고자하는 것은 내 source에 3 개 미만의 개체가있는 경우에 ListView 화면에 맞게 Datatemplate의 너비를 확장하는 것입니다. 내가 사용하는 윈도우의 현재 폭을 얻을 수 있다는 것을 알고 :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에 있습니까?

Window 또는 ListView에 대해 SizeChanged 이벤트를 처리 할 수 ​​있습니다.

이 이벤트는 요소의 크기가 변경 될 때마다 호출됩니다. 그런 다음 이벤트 처리기에서 열 너비를 변경할 수 있습니다, 예를 들면 :

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