我有一個非常特別的請求;-)自定義ItemsControl與可選尋呼
我想開發一個ItemsControl與「上一個」控制和「下一個」控制。像這樣結合到任意的視圖模型:
<controls:PagedItemsControl ItemsSource="{Binding Items}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid Columns="5" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate DataType="system:String">
<Border Background="Gray" Margin="5">
<TextBlock Text="{Binding}" Foreground="White" VerticalAlignment="Center" HorizontalAlignment="Center" />
</Border>
</DataTemplate>
</ItemsControl.ItemTemplate>
<controls:PagedItemsControl.PreviousControl>
<Button Content="Previous" Command="{Binding PreviousCommand}" />
</controls:PagedItemsControl.PreviousControl>
<controls:PagedItemsControl.NextControl>
<Button Content="Next" Command="{Binding NextCommand}" />
</controls:PagedItemsControl.NextControl>
</controls:PagedItemsControl>
在這個例子中我經過視圖模型的命令來控制2個按鈕。如果有人能告訴我如何聆聽Control.IsEnable
狀態並將PreviousControl
顯示爲第一項(如果啓用)並將NextControl
作爲最後一項(如果啓用),那將會非常棒。
謝謝
你需要一個'CollectionView'(可能是一個'CompositeCollection',因爲你的Previous和Next元素將會是一個不同於其他項的類型),還有一個'RoutedCommand'來處理前一個/下一個邏輯和啓用/禁用。 – 2015-01-15 15:39:51