的ListView與被加載的窗口時最初被隱藏,並且然後在特定用戶動作可見的GridView。
目的:
可以設置GridView的列的相對寬度。
問題:
我需要可以通過使用在寬度(類似於答案here東西)轉換器來實現,或者通過在ListView控件添加行爲(見this solution)。 這兩種方法似乎都是有效的 - 但僅限於從早期開始渲染的控件。 在我的情況下,當進行計算時,ActualWidth始終爲0,並且在ListView變爲可見時不會重複這些計算。
所以,我想,這裏的真正問題是如何獲得列的寬度進行重新評估的時候ListView控件的ActualWidth獲取大於0
該解決方案將最好的XAML級別,而不涉及代碼隱藏 - 但也會這樣做,如果這是唯一的選擇;-)
有什麼建議嗎?
P.S.以下是Chris的問題,下面是關於如何隱藏/顯示ListView的說明:它是另一個容器控件的子元素,託管在網格列中,該列的寬度由觸發器控制。
<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