我正在使用poco类进行以下屏幕,但我只想知道如何实现此屏幕的上下移动元素
我正在使用ObservableCollection将我的项目添加到共同列表中我的问题是如何实现向上移动和向下移动。我不需要实时更改poco类但不确定如何实现这个
private void AddColumn(object sender, RoutedEventArgs e)
{
if (this.WizardData == null)
return;
if (this.WizardData.ConcreteCustomColumnsProxy == null)
this.WizardData.ConcreteCustomColumnsProxy = new ObservableCollection<CustomColumnsModel>();
this.WizardData.ConcreteCustomColumnsProxy.Add(new CustomColumnsModel() { CustomColumnsDisplayName = txtDsiplayName.Text
, CustomColumnsOrder = 1, CustomColumnsWidth = Convert.ToInt32(txtWdith.Text) });
this.listView1.ItemsSource = this.WizardData.ConcreteCustomColumnsProxy;
this.listView1.UnselectAll();
this.listView1.Items.Refresh();
我的Poco课程如下
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; }
}
答案 0 :(得分:4)
你有某种DataGrid
控件。您需要将集合属性数据绑定到DataGrid.ItemsSource
属性,并将与集合中项目相同类型的属性绑定到DataGrid.SelectedItems
属性:
<DataGrid ItemsSource="{Binding YourCollectionProperty}"
SelectedItem="{Binding YourItemProperty}" />
将DataGrid.SelectedItems
属性数据绑定到YourItemProperty
,您可以通过设置此属性来设置在UI中选择的项目。因此,要将所选项目向下移动一个位置,您可以执行以下操作:
int selectedIndex = YourCollectionProperty.IndexOf(YourItemProperty);
if (YourCollectionProperty.Count > selectedIndex)
YourItemProperty = YourCollectionProperty.ElementAt(selectedIndex + 1);
这就是您执行“向下移动”Button
的操作的方式,而“向上移动”Button
的工作方式类似。然后,您需要做的就是连接一些Click
或ICommand
事件处理程序。