我正在使用觀察集合來存儲我綁定到WPF列表視圖的列表,我的問題是我試圖讓前端順序工作。在分鐘如果我點擊我的向上移動按鈕它的項目移動好,但它不改變列表中已經填充的項目。這應該很容易,但我很難找到它。列表移動向上和向下移動
我的問題是我如何正確地更改訂單號的位置,以反映用戶點擊鼠標後按鈕基於下面的序列和更新列表中的其他項目以反映新的位置,因爲目前不改變現有元素或新增元素的數量關係。
Order Display Name Width
1 Title 50
2 Description 150
我使用添加按鈕
Order Display Name Width
1 Title 50
2 Description 150
3 Newitem 50
添加項目到列表我點擊上移按鈕,一旦新的列表順序使用如下所示變成
Order Display Name Width
1 Title 50
2 Newitem 50
3 Description 150
代碼IM
ObservableCollection<CustomColumnsModel> columnsList = this.WizardData.ConcreteCustomColumnsProxy;
Extensions.MoveItemUp(columnsList, this.listView1.SelectedIndex);
int offset = 0;
var selectedColumnItem = listView1.SelectedItem as CustomColumnsModel;
foreach (CustomColumnsModel item in columnsList)
{
foreach (CustomColumnsModel item in this.listView1.SelectedItems)
{
item.CustomColumnsOrder -= 1;
}else if (listView1.SelectedItem > item)
{
item.CustomColumnsOrder +1;
}
}
以下g是我的擴展方法
public static void MoveItemUp<T>(this ObservableCollection<T> baseCollection, int selectedIndex)
{
//# Check if move is possible
if (selectedIndex <= 0)
return;
//# Move-Item
baseCollection.Move(selectedIndex - 1, selectedIndex);
}
這是我的POCO類
public class CustomColumnsModel : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
public const string IdPropertyName = "CustomColumnsID";
private Guid _Id = Guid.Empty;
public Guid CustomColumnsID
{
get { return _Id; }
set
{
if (_Id == value)
return;
_Id = value;
NotifyPropertyChanged(IdPropertyName);
}
}
public string CustomColumnsDisplayName { get; set; }
public int CustomColumnsWidth { get; set; }
public int CustomColumnsOrder { get; set; }
protected void NotifyPropertyChanged(string key)
{
if (this.PropertyChanged != null)
{
this.PropertyChanged(this, new PropertyChangedEventArgs(key));
}
}
public EnterpriseManagementObject ActualData { get; private set; }
編輯,顯示代碼,嘗試了建議
foreach (CustomColumnsModel item in columnsList)
{
if (item.CustomColumnsOrder < item.ColumnIndex)
item.CustomColumnsOrder -= 1;
else if (item.CustomColumnsOrder > item.ColumnIndex)
item.CustomColumnsOrder -= 1;
}
那麼,你的問題是什麼? – Noctis 2014-09-12 10:55:03
@Noctis在上面添加問題編輯他們的對不起 – rogue39nin 2014-09-12 11:00:21