셋업 : 처음에 윈도우가로드 될 때 숨겨진 한 다음 특정 사용자 작업에 가시가의 GridView와크기 조정의 GridView 열 한 후에 그것을 볼 수
의 ListView.
목적 :
가의 GridView의 열 상대적으로 폭을 설정할 수 있습니다.
문제 :
내가 폭 (답 here 유사한)에 변환기를 사용하여 하나 달성 할 수 필요하거나 ListView에에 행동을 추가하여 (this solution 참조). 두 접근법 모두 유효하지만 처음부터 렌더링 된 컨트롤에 대해서만 유효합니다. 필자의 경우, 계산이 이루어지면 ActualWidth는 항상 0이며 ListView가 표시 될 때 이러한 계산이 반복되지 않습니다.
그래서 것 같아요, 여기에 실제 질문은 리스트 뷰의 ActualWidth가 0보다 큰
을이 솔루션은 바람직하게는 XAML에서 할 것 얻을 때 열 '폭이 다시 평가 될 받으시는 방법 코드 숨김을 포함하지 않은 수준이지만, 유일한 대안 인 경우에도 그렇게 할 것입니다 .-))
의견이 있으십니까?
P. 아래 Chris의 질문에 따라 ListView가 숨겨져 있거나 표시되는 방식에 대한 설명이 있습니다. Grid 컨트롤은 다른 컨테이너 컨트롤의 자식이며 Grid 열에서 호스팅되며 해당 열의 너비는 트리거에 의해 조작됩니다.
<ColumnDefinition>
<ColumnDefinition.Style>
<Style>
<Setter Property="ColumnDefinition.Width" Value="4*"/>
<Style.Triggers>
<DataTrigger Binding="{Binding Path=OpenItems.Count}" Value="0">
<Setter Property="ColumnDefinition.Width" Value="0"/>
</DataTrigger>
</Style.Triggers>
</Style>
</ColumnDefinition.Style>
</ColumnDefinition>
나는 (축소와 가시 사이의 가시성을 조작하는) 대신 ListView에의 컨테이너 자체에 유사한 트리거를 적용하려고했으나 그의 문제는 열이 원래 4 * 폭에서 축소하지 않는다는 것입니다 , 그래서 나는 그것이 숨겨져있을 때 (비어있는) 컨트롤을 보았습니다.
크리스, 좀 더 함께 원래의 질문을 업데이트 세부. 이 상황이 더 많은 빛을 발산했으면 좋겠다. – Alex