Может ли кто-нибудь подсказать мне, почему я не могу получить доступ к элементу WPF через его имя изнутри класса (который является частью MainWindow)? Я не понимаю, почему это невозможно через имя, как это возможно для функции Click кнопки MainWindow.
Пример и проблема: StackPanel (StackPanel1) в средстве просмотра прокрутки содержит списки ListBoxes. Две кнопки добавляют списки в эту StackPanel, используя два разных подхода. Первая кнопка напрямую обращается к StackPanel1 и добавляет дочерние элементы, вторая кнопка использует класс (MyClass). Я не могу получить доступ к StackPanel через ее имя внутри этого класса, как это возможно для функции щелчка. Почему?
xaml:
cs:
using System.ComponentModel;
using System.Runtime.CompilerServices;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace WpfApp
{
///
/// Interaction logic for MainWindow.xaml
///
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
class MyClass
{
public void AddNewListBoxes(StackPanel sp)
{
ListBox lb = new ListBox();
lb.Width = 120;
lb.Height = 150;
lb.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;
sp.Children.Add(lb);
// StackPanel1.Children.Add(lb); // does not work! Why?
}
}
private void Add_Elements_Directly_Click(object sender, RoutedEventArgs e)
{
ListBox lb = new ListBox();
lb.Width = 120;
lb.Height = 150;
lb.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;
StackPanel1.Children.Add(lb);
}
private void Add_Elements_ViaClass_Click(object sender, RoutedEventArgs e)
{
MyClass myClass = new MyClass();
StackPanel sp = StackPanel1; // StackPanel1 from xaml
myClass.AddNewListBoxes(sp);
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/792 ... de-a-class
Доступ к элементу WPF изнутри класса ⇐ C#
Место общения программистов C#
1734502134
Anonymous
Может ли кто-нибудь подсказать мне, почему я не могу получить доступ к элементу WPF через его имя изнутри класса (который является частью MainWindow)? Я не понимаю, почему это невозможно через имя, как это возможно для функции Click кнопки MainWindow.
Пример и проблема: StackPanel (StackPanel1) в средстве просмотра прокрутки содержит списки ListBoxes. Две кнопки добавляют списки в эту StackPanel, используя два разных подхода. Первая кнопка напрямую обращается к StackPanel1 и добавляет дочерние элементы, вторая кнопка использует класс (MyClass). Я не могу получить доступ к StackPanel через ее имя внутри этого класса, как это возможно для функции щелчка. Почему?
xaml:
cs:
using System.ComponentModel;
using System.Runtime.CompilerServices;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace WpfApp
{
///
/// Interaction logic for MainWindow.xaml
///
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
class MyClass
{
public void AddNewListBoxes(StackPanel sp)
{
ListBox lb = new ListBox();
lb.Width = 120;
lb.Height = 150;
lb.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;
sp.Children.Add(lb);
// StackPanel1.Children.Add(lb); // does not work! Why?
}
}
private void Add_Elements_Directly_Click(object sender, RoutedEventArgs e)
{
ListBox lb = new ListBox();
lb.Width = 120;
lb.Height = 150;
lb.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;
StackPanel1.Children.Add(lb);
}
private void Add_Elements_ViaClass_Click(object sender, RoutedEventArgs e)
{
MyClass myClass = new MyClass();
StackPanel sp = StackPanel1; // StackPanel1 from xaml
myClass.AddNewListBoxes(sp);
}
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79289251/access-wpf-element-from-inside-a-class[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия