0
WPF TreeView에서 TreeItem의 이동에 문제가 있습니다. 내가 컴파일러라는 항목을 이동하려고하면 은 여기 내 문제WPF Treeview (Children 포함) 항목 위아래로 이동
public class Workflow {
public string Name { get; set; }
public int Rank { get; set; }
private ObservableCollection<Workflow> childWorkflowsValue = new ObservableCollection<Workflow>();
public ObservableCollection<Workflow> ChildWorkflows {
get {
return childWorkflowsValue;
}
set {
childWorkflowsValue = value;
}
}
public Workflow() { }
public Workflow(string name, int rank) {
Name = name;
Rank = rank;
}
}
의 항목과 운동
private void FillWithData() {
myWorkflow.Add(new Workflow("Airbag ausgelöst", 0));
myWorkflow.Add(new Workflow("Abstand halten", 1));
Workflow SubWorkflow = new Workflow("Vorgehen", 2);
SubWorkflow.ChildWorkflows.Add(
new Workflow("Innenraum kontrollieren", 0));
SubWorkflow.ChildWorkflows.Add(
new Workflow("Spuren des Airbags suchen", 1));
SubWorkflow.ChildWorkflows.Add(
new Workflow("Airbag zur seite drücken", 2));
myWorkflow.Add(SubWorkflow);
myTreeView.DataContext = myWorkflow;
}
private void btnMoveUp_Click(object sender, RoutedEventArgs e) {
var currentWf = this.myTreeView.SelectedItem as Workflow;
if (currentWf != null) {
FindRecursive(myWorkflow, currentWf.Name);
}
}
private void FindRecursive(ObservableCollection<Workflow> wf, string searchText) {
foreach (var item in wf) {
if (item.Name == searchText) {
wf.Move(item.Rank, item.Rank-1);
//problem in here
}
FindRecursive(item.ChildWorkflows, searchText);
}
}
의 논리이다 : 컬렉션을 수정할 수 없습니다. 웹 사이트에서도 솔루션을 검색했지만 기회는 없었습니다. 더 좋은 방법이있을 수 있습니다.