Форум программистов, компьютерный форум, киберфорум
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
4 / 4 / 1
Регистрация: 18.09.2020
Сообщений: 149

Ссылка на объект не указывает на экземпляр объекта

08.06.2021, 20:11. Показов 2759. Ответов 36
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Решил разбить работу с одним окном на два класса.
Первый класс:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
namespace TestWPF
{
    /// <summary>
    /// Логика взаимодействия для MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }
 
        private Field f;
 
        private void startCMD(object sender, RoutedEventArgs e)
        {
            f.startButton();
        }
    }
}
Второй наследуется от первого:
C#
1
2
3
4
5
6
7
8
9
10
namespace TestWPF
{
    public partial class Field : MainWindow
    {
        public void startButton()
        {
 
        }
    }
}
Компилируется нормально, при попытке вызвать событие программа сообщает об ошибке "Ссылка на объект не указывает на экземпляр объекта"
Что я делаю не так?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.06.2021, 20:11
Ответы с готовыми решениями:

Ссылка на объект не указывает на экземпляр объекта
Уже много форумов и сайтов перешарено с данном проблемой, понимаю только что коллекция collection = null, но как исправить и почему так...

Ссылка на объект не указывает на экземпляр объекта
Ругается на строку с for ... не могу понять что там не так помогите пожалуйста:wall: public string Login { get {...

Ссылка на объект не указывает на экземпляр объекта
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using...

36
 Аватар для Andrey-MSK
3392 / 2278 / 388
Регистрация: 14.08.2018
Сообщений: 7,719
Записей в блоге: 4
31.03.2026, 12:25
Студворк — интернет-сервис помощи студентам
JeyCi, WebAPI должен передавать данные в установленном формате, который описан в документации к этому API, (JSON, XML, Binary). Данные отправляет контроллер, сериализация происходит автоматически по настройкам WebAPI (по умолчанию JSON). Вы можете настроить в Program.cs какой угодно тип ответа. Клиенту уходит тот формат, который он запросил и который поддерживается WebAPI. Формат указывается в запросе
Code
1
2
GET {{Host}}:{{Port}}/api/eobject/geteobjects/
Accept: application/json; charset=utf-8
А клиент уже должен сам уметь все эти данные конвертировать.

Добавлено через 2 минуты
JeyCi, В котроллере метод выглядит так
C#
1
2
3
4
5
6
[HttpGet(Name = "GetEObjects")]
[ProducesResponseType<IEnumerable<EObject>>(StatusCodes.Status200OK)]
public async Task<ActionResult<IEnumerable<EObject>>> GetEObjects()
{
    return await _eobjectDA.GetEObjectsAsync();
}
Вся сериализация выполняется автоматически.
1
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16165 / 11285 / 2892
Регистрация: 21.04.2018
Сообщений: 33,174
Записей в блоге: 2
31.03.2026, 13:38
Цитата Сообщение от JeyCi Посмотреть сообщение
да, и BusinessLayer между Model и VM, если надо...
Задача ViewModel отразить Модель в удобном для View виде.
Если BusinessLayer - это часть отражения, то это часть логики ViewModel.
Если это часть получения данных от Модели её потребителями, то это часть слоя Модели.

То есть с точки зрения MVVM BusinessLayer это не самостоятельный слой, а часть реализации или Model, или ViewModel.

Так же надо понимать, что приложение это тоже может состоять из других приложений.

Например, какое-то "большое" web приложение.
Его Бизнес логика - это серверная часть.
Тонкий клиент - это View + ViewModel.

Но тонкий клиент это тоже самостоятельное приложение.
С его точки зрения в нём есть логика работы с web - это и есть локальная бизнес логика, то есть локальная Model.
Есть собственно GUI - это локальное View.
И слой между локальными View и Model - локальная ViewModel.
0
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,554
31.03.2026, 14:03
OFF к теме,
но для завершения мысли моего предыдущего поста

P.P.S. по асинхронности - пример реализации interface IAsyncCommand : ICommand для привязки к XAML

Добавлено через 8 минут
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Например, какое-то "большое" web приложение.
Его Бизнес логика - это серверная часть.
Тонкий клиент - это View + ViewModel.
разве web-риложение можно/нужно архитектурно выстраивать по паттерну MVVM??.. Скорее MVC или MVP, но web API (например Blazor) ведь в xaml не тянет из VM?.. или тянет из другого класса, подготовки данных к Представлению в html, а не просто привязки к XAML (как в WPF)
0
 Аватар для Andrey-MSK
3392 / 2278 / 388
Регистрация: 14.08.2018
Сообщений: 7,719
Записей в блоге: 4
31.03.2026, 14:17
Цитата Сообщение от JeyCi Посмотреть сообщение
P.P.S. по асинхронности - пример реализации interface IAsyncCommand : ICommand для привязки к XAML
Пользуйтесь пакетом CommunityToolkit - AsyncRelayCommand, и не изобретайте велосипед
0
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,554
31.03.2026, 14:18
доп. к #23:
Цитата Сообщение от Элд Хасп Посмотреть сообщение
WPF легче ложится на MVVM. WF же обычно реализуют на MVP.
Задачи VM и Presenter различаются. И View работает иначе с ними.
Албахари, Дж. - Прикладные технологии :

Технологии для создания пользовательского интерфейса
- ASP.NET
- WPF
- Windows Forms
Технологии работы с базами данных
- ADO.NET
- Windows Workflow
- COM+ и MSMQ
Технологии построения распределенных систем
- WCF
- Удаленное взаимодействие и веб-службы
- CardSpace

всё-таки V+VM тянуть на web-API -- не приходилось никому уже давно, даже никогда...
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3461 / 2782 / 575
Регистрация: 04.09.2018
Сообщений: 8,746
Записей в блоге: 3
31.03.2026, 14:45
Web-API вообще никак не относится к MV* паттернам. Там нет UI по определению. Это только набор программных средств для работы с Web (взаимодействие с серверами/клиентами и т.п.). Условно говоря - это просто служба, работающая в фоне.
А вот уже панель (окно, интерфейс) управления сервером или UI клиента - да, строятся на паттернах MV*.
0
 Аватар для Andrey-MSK
3392 / 2278 / 388
Регистрация: 14.08.2018
Сообщений: 7,719
Записей в блоге: 4
31.03.2026, 14:50
Цитата Сообщение от wizard41 Посмотреть сообщение
Web-API вообще никак не относится к MV* паттернам.
Ну почему. Сейчас активно пользуют MVC, только без V
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3461 / 2782 / 575
Регистрация: 04.09.2018
Сообщений: 8,746
Записей в блоге: 3
31.03.2026, 14:56
Andrey-MSK, вот именно что без "V". А это уже другая история.. Модель, контроллеры..
0
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,554
31.03.2026, 15:18
Цитата Сообщение от wizard41 Посмотреть сообщение
А вот уже панель (окно, интерфейс) управления сервером или UI клиента - да, строятся на паттернах MV*.
тогда есть смысл выносить в отдельный проект/сборку VM? чтобы потом её подключить к разным клиентам -- Desktop UI или View_html, или даже на консоль выводить ?
0
 Аватар для Andrey-MSK
3392 / 2278 / 388
Регистрация: 14.08.2018
Сообщений: 7,719
Записей в блоге: 4
31.03.2026, 15:22
JeyCi, Вы про что имеете ввиду? Сервер или клиент?
Клиент - паттерн зависит от технологии на которой он пишется.
Сервер, как сказал wizard41, там своя кухня, если он без View.
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3461 / 2782 / 575
Регистрация: 04.09.2018
Сообщений: 8,746
Записей в блоге: 3
31.03.2026, 15:24
JeyCi, ну тут уже зависит от фантазии и опыта пишущего.. Ну и разумеется от иерархии всей системы - для чего она предназначается.
0
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,554
31.03.2026, 15:25
Цитата Сообщение от Andrey-MSK Посмотреть сообщение
JeyCi, Вы про что имеете ввиду? Сервер или клиент?
сервер на localhost (aka LocalDB) и архитектуру клиента разбросать по dll-кам и View прикрутить потом и на Desktop и на web_html (переориентировать в перспективе потом, чтобы не переписывать back-end и клиентские dll'ки)
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3461 / 2782 / 575
Регистрация: 04.09.2018
Сообщений: 8,746
Записей в блоге: 3
31.03.2026, 16:08
JeyCi, Web Server довольно емкое понятие. В зависимости от целевого проекта он может иметь свою локальную консоль (окно) управления, а может и не иметь. поэтому все эти выкрутасы с MV-V и подобными зависят буквально от конкретного случая.

Например, в одном моем текущем проекте Web сервер не имеет собственной консоли управления. Он работает только по HTTP(S), для клиентов доступен один эндпоинт (к примеру "/data"), а для управления самим сервером другой эндпоинт ("/control").
Сами клиенты подключаются из браузеров со своими страницами; сервер не отдает им какие-л. статические страницы. Понятно, что сам обмен данными четко определен на основе JSON.
Если к серверу захочет подключится какой-то оконный клиент, то вот его уже можно разносить на все эти вьюхи-модели и прочее.

В других ситуациях, возможно создание некоторой "псевдо-универсальной" View в виде отд. библиотеки.
1
 Аватар для Andrey-MSK
3392 / 2278 / 388
Регистрация: 14.08.2018
Сообщений: 7,719
Записей в блоге: 4
31.03.2026, 16:43
Цитата Сообщение от JeyCi Посмотреть сообщение
(aka LocalDB)
Это вообще-то сервер СУБД, к MV* он никакого отношения не имеет. Это просто хранилище данных.
Цитата Сообщение от JeyCi Посмотреть сообщение
и архитектуру клиента разбросать по dll-кам
Ну и пишите в отдельных проектах DataAccess, Model. Их потом можно без проблем прикрутить куда нужно.
Цитата Сообщение от JeyCi Посмотреть сообщение
View прикрутить потом и на Desktop и на web_html
А вот тут уже одну VM или один C на всё не сделаешь. Каждый View будет со своей архитектурой, где-то есть привязки, где-то только через контроллер/презентер.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16165 / 11285 / 2892
Регистрация: 21.04.2018
Сообщений: 33,174
Записей в блоге: 2
31.03.2026, 19:19
Цитата Сообщение от JeyCi Посмотреть сообщение
разве web-риложение можно/нужно архитектурно выстраивать по паттерну MVVM??.. Скорее MVC или MVP, но web API (например Blazor) ведь в xaml не тянет из VM?
Да. Не обязательно MVVM. Но если в приложении предусматривается хоть какой-то интерфейс пользователя, то скорее всего это будет реализацией какого-то паттерна MV*.
web API (например Blazor) - это инструменты реализации. А реализовываться приложение почти на 100% будет по какому-то из паттернов семейства MV*.

Добавлено через 11 минут
Цитата Сообщение от wizard41 Посмотреть сообщение
вообще никак не относится к MV* паттернам. Там нет UI по определению.
полностью согласен
1
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,554
04.04.2026, 22:41
Цитата Сообщение от wizard41 Посмотреть сообщение
вот именно что без "V". А это уже другая история.. Модель, контроллеры..
похоже и контроллеры не очень уже используются
Modern architecture separates API servers (Node.js, Go, Python) from front-end frameworks. The backend only provides data (JSON), rendering it a "pure" service rather than a controller that manages views.
The front end now moves much faster than the back end, making tightly coupled MVC architectures harder to maintain and update.
- можно ли к новым технологиям отнести Ajax в ASP.NET? или он уже тоже устарел?

Добавлено через 6 минут
P.S.

Цитата Сообщение от JeyCi Посмотреть сообщение
C++ в асинхронных тасках управляемого кода
IDisposable and finalizers - вот чего мне не хватало для GC


Добавлено через 16 минут
P.P.S. наверно, микросервисы сейчас, как альтернатива MVC
a micro-service is an API that talks JSON so there is no need for HTML responses with decorators, CSS, etc), and so pretty much everything is in the Controllers.
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3461 / 2782 / 575
Регистрация: 04.09.2018
Сообщений: 8,746
Записей в блоге: 3
04.04.2026, 23:22
Цитата Сообщение от JeyCi Посмотреть сообщение
Ajax в ASP.NET? или он уже тоже устарел?
Не совсем, но почти..
Цитата Сообщение от JeyCi Посмотреть сообщение
наверно, микросервисы сейчас
Да.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.04.2026, 23:22

Ссылка на объект не указывает на экземпляр объекта
Привет тем кто шарит !!! Помогите решить мою проблеммку. { string a1 = textBox1.Text; string a2 = a1 +...

Ссылка на объект не указывает на экземпляр объекта
Пытаюсь редактировать некоторые поля, но при вызове события клика на кнопку происходит ошибка &quot;Ссылка на объект не указывает на...

Ссылка на объект не указывает на экземпляр объекта
Само задание: Организовать метод собирающий деньги у группы людей. Организовать метод который принимает коэффициент дохода и возвращает...

Ссылка на объект не указывает на экземпляр объекта
Ссылка на объект не указывает на экземпляр объекта Вот в этих файлах Строка 488 http://pastebin.com/p8MJjEZ8 Строка 21 using...

Ссылка на объект не указывает на экземпляр объекта
При присваивании Source значения выводится ошибка &quot;Ссылка на объект не указывает на экземпляр объекта&quot;, хотя, вроде бы, массив marks...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
37
Ответ Создать тему
Новые блоги и статьи
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek ВВЕДЕНИЕ Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
Модель по догадкам
anaschu 25.08.2026
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
Запись в регистр сведений независимо от заполненности табличной части
Maks 25.08.2026
Реализация из решения ниже выполнена на нетиповом документе с несколькими табличными частями, разработанного в КА2. Задача: Обеспечить запись документа в регистр сведений независимо от. . .
Ноутбук Альфария
kumehtar 24.08.2026
Встретился тут в сети ноутбук Альфария, примарха Альфа-Легиона. Хотя возможно, это ноутбук Омегона, разумеется. Ну как вам?
Мастера простых решений
DevAlt 23.08.2026
В сишарп стэках winforms, да и wpf существует сложная система связывания источниках данных и элементов формы(текстовые поля и метки), опирается все это на технологию событий и мета. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru