Wie kann ich den Fokus auf eine Elementeigenschaft in einer TreeView setzen?C#

Ein Treffpunkt für C#-Programmierer
Anonymous
 Wie kann ich den Fokus auf eine Elementeigenschaft in einer TreeView setzen?

Post by Anonymous »

Setzen Sie den Fokus auf eine Elementeigenschaft in einer TreeView
Die TreeView sieht folgendermaßen aus:

Code: Select all


















Das ToDoItem.cx sieht so aus:

Code: Select all

using SLP;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Runtime.CompilerServices;

namespace Day_Planner.Models
{
public class ToDoItem : INotifyPropertyChanged
{
public event PropertyChangedEventHandler? PropertyChanged;

public void OnPropertyChanged([CallerMemberName] string propertyName = "")
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}

public ToDoItem()
{
Items = [];
}

public ToDoItem(string name)
{
Name = name;
Items = [];
}

public ToDoItem(object parent, string name)
{
Parent = parent;
Name = name;
Items = [];
}

private Object? _Parent;
public Object? Parent
{
get { return _Parent; }
set { _Parent = value; OnPropertyChanged(); }
}

private string _Name = String.Empty;
public string Name
{
get { return _Name; }
set { _Name = value; }
}

private bool _IsComplete;
public bool IsComplete
{
get { return _IsComplete; }
set { _IsComplete = value; OnPropertyChanged(); }
}

public ObservableCollection Items { get; set; }
public override string ToString()
{
return $"{Name}";
}

public Command AddChild => new Command((e) =>
{
Items.Add(new ToDoItem(this,"Untitled"));
});

public Command AddSibling => new Command((e) =>
{
if (e is ToDoItem item)
{
if (item.Parent is ViewModel data)
{
data.Items.Add(new ToDoItem(data,"Untitled"));
}
else if (item.Parent is ToDoItem Parent)
{
Parent.Items.Add(new ToDoItem(Parent,"Untitled"));
}
}
});

public Command DelItem =>  new Command((e) =>
{
if (e is ToDoItem item)
{
if (item.Parent is ViewModel data)
{
data.Items.Remove(item);
}
else if (item.Parent is ToDoItem Parent)
{
Parent.Items.Remove(item);
}
}
});
}
}
Ich versuche, den Fokus auf die TextBox zu setzen, die an ToDoItem.Name gebunden ist, wenn ich ein Kind oder Geschwister hinzufüge. Das Element wird an der richtigen Stelle hinzugefügt, aber wenn ich versuche, den Fokus zu setzen, erhält das TreeViewItem, das das Element enthält, den Fokus und nicht der TextBox Inhalt des Kontrollkästchens des Headers des TreeViewItem. Das Verschieben des Fokus scheint nicht zu helfen. Im Idealfall würde die TextBox den Fokus erhalten und der gesamte Text wäre ausgewählt.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post