1
我正在使用兩個拖放列表框拖放拖放,其中用戶可以將項目從源列表框拖放到目標上。我爲ListBox控件的ListBoxItems使用DataTemplate。Silverlight 4和LisBox的SelectedItem當使用DataTemplate作爲ItemTemplate
我需要讓用戶能夠在從源移動目標列表框中向上/向下移動項目。我有兩個按鈕「上移」&「下移」來做到這一點,但是當用戶點擊其中一個按鈕時,它將null對象作爲selectedItem返回給我。
這裏是我的代碼
private void moveUp_Click(object sender, RoutedEventArgs e)
{
ListBoxItem selectedItem = lstmenuItems.SelectedItem as ListBoxItem;
if (selectedItem != null)
{
int index = lstmenuItems.Items.IndexOf(selectedItem);
if (index != 0)
{
lstmenuItems.Items.RemoveAt(index);
index -= 1;
lstmenuItems.Items.Insert(index, selectedItem);
lstmenuItems.SelectedIndex = index;
}
}
}
我敢肯定,它與ItemTemplate中做。這裏是列表框
<ListBox x:Name="lstmenuItems" Height="300" MinWidth="200" >
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<StackPanel Orientation="Vertical">
<TextBlock Text="{Binding Code}"/>
<TextBlock Text="{Binding RetailPrice, StringFormat=£\{0:n\}}" />
</StackPanel>
<!-- Product Title-->
<TextBlock Text="{Binding Description1}" Width="100" Margin="2" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
任何想法如何,我可以訪問所選擇的項目,我怎樣才能將其向上/向下的XAML?
在此先感謝
我已將它綁定到ObeservableCollection,但問題是它沒有排序。所以我想要的是在drop事件中通過集合,並通過放入列表中的訂單用戶進行排序。 – Jhelumi 2010-09-17 13:54:38
@Jhelumi:如果您操作ObservableCollection(而不是綁定到它的ListBox),ListBox應該更改以反映集合中的更改。 – AnthonyWJones 2010-09-17 19:52:52