我想列出一個對象數組並將這些項目水平地均勻分佈。如果它不是一個數據綁定數組,我只需創建一個具有正確列數的網格並將每個項目分配給一列。問題是我不知道如何用數據綁定列表控件做到這一點。如何水平分佈WPF中的對象數組?
作爲一種廉價的替代我的項目被列水平使用一個StackPanel作爲ItemsPanel爲一個ItemsControl這樣的:
<ItemsControl ItemsSource="{Binding Path=ValveSettings}" Grid.Row="0">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="auto" />
<RowDefinition />
<RowDefinition Height="auto" />
</Grid.RowDefinitions>
<Label Content="{Binding Path=Name}" Grid.Row="0" />
<ScrollBar Orientation="Vertical" Grid.Column="0" Grid.Row="1" Minimum="0" Maximum="100000" Value="{Binding Path=DelayInMicroseconds}" SmallChange="100" LargeChange="1000" />
<TextBox Text="{Binding Path=DelayInMicroseconds}" Grid.Row="2" />
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
有沒有一種方法,我可以分佈均勻出來?
你是如何挑選的8保證金?這不是絕對的價值嗎?如果是這樣,不會使用絕對值需要調整,這取決於數組中有多少項以及窗口有多大? – 2012-04-04 16:06:30
啊,好的。是的,0 0 8 0的邊際是任意的,因爲我以爲你只是想有一些空間分隔你的物品。要根據Item容器的數量來定位Item容器,可以看看是否有方法將UniformGrid用作ItemsPanelTemplate。我沒有嘗試過,但我想你需要將它限制爲1行,並找到一些方法將列數更改爲ItemsCollection中的項目數。如果你喜歡,我會在一段時間內看看我是否可以測試這個。 – CodeWarrior 2012-04-04 16:12:05
謝謝你,這是我試圖解決的問題的核心 – 2012-04-04 16:21:24