Как установить фокус на свойство элемента в TreeViewC#

Место общения программистов C#
Ответить
Anonymous
 Как установить фокус на свойство элемента в TreeView

Сообщение Anonymous »

Установите фокус на свойство элемента в TreeView
TreeView выглядит так: ToDoItem.cx выглядит так:

Код: Выделить всё

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);
}
}
});
}
}
Я пытаюсь установить фокус на TextBox, привязанный к ToDoItem.Name, при добавлении дочернего или родственного элемента. Элемент добавляется в правильное место, но когда я пытаюсь установить фокус, TreeViewItem, содержащий этот элемент, получает фокус вместо TextBox Содержимое флажка заголовка TreeViewItem. Перемещение фокуса, похоже, не помогает. В идеале TextBox должен получить фокус и весь текст будет выделен.

Подробнее здесь: https://stackoverflow.com/questions/797 ... a-treeview
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»