我有一個場景,需要我將一個對象列表綁定到網格。我想這樣的行爲: -綁定轉換器使用列表中的項目索引
•當一個項目被添加到列表中時,它將移動到網格中的下一個可用空間。 (如包裝面板)
下面顯示的是我目前的XAML。
<ItemsControl ItemsSource="{Binding Path=Contents}" Grid.Row="1">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<cc:DynamicGrid ShowGridLines="True" RowCount="{Binding Path= SelectedGridStyle.RowCount}" ColCount="{Binding Path=SelectedGridStyle.ColCount}"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
目前這使所有在彼此頂部的項目,因爲我還沒有指定一個行索引或列索引。我打算添加以下糾正這一
<ItemsControl.ItemContainerStyle>
<Style>
<Setter Property="Grid.Column" Value="{Binding Path=ColumnIndex}"/>
<Setter Property="Grid.Row" Value="{Binding Path=RowIndex}"/>
<Setter Property="Grid.ColumnSpan" Value="{Binding Path=ColumnSpan}"/>
<Setter Property="Grid.RowSpan" Value="{Binding Path=RowSpan}"/>
</Style>
</ItemsControl.ItemContainerStyle>
我有下面的代碼,這將讓我從列表中的指數計算的rowIndex和columnIndex。
int m_ColumnCount = 3;
int rowIndex = index/m_ColumnCount;
int columnIndex = index - (rowIndex * m_ColumnCount);
我試圖創建一個綁定轉換器使用上述設置這些值。但是,此計算取決於視圖模型中保存的列和行數。有沒有辦法獲得這些值?上述可以實現還是有更好的解決方案?