Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / WPF, Silverlight Новый топик    Ответить
 прикладное приложение WPF XAML MVVM  [new]
cybermerlin
Member

Откуда:
Сообщений: 9
директории
- helpers
- view
- viewmodel
окно mainwindow.xaml не содержит UI
MainControl (UserControl) содержит UI элементы
число MainControl неограниченное, каждое содержит свой набор UI-элементов
MainControl помещается в MainWindow в зависимости от нажатой кнопки. Базовый MainControl помещается при старте (т.е. в среде разработки MainWindow не содержит UI).
все команды выполняемые по нажатию на кнопки в MainControl должны быть описаны только во ViewModel, т.е. View не содержит исполнительный код.

необходимы 3 UserControl xaml
главный UserControl в maincontrol.xaml содержит две кнопки: Вычислить и Закрыть.
Соответственно команда закрытия Окна по кнопке Закрыть должна быть описана в ViewModel, тогда как View.UserControl не содержит команды закрытия окна (this.Close())
7 апр 14, 15:59    [15844543]     Ответить | Цитировать Сообщить модератору
 Re: прикладное приложение WPF XAML MVVM  [new]
Lelouch
Member

Откуда: Москва
Сообщений: 1879
cybermerlin,

Хорошо было бы поставить знаки вопроса...
Но, возможно, вопрос был про это http://msdn.microsoft.com/ru-ru/library/ms597013(v=vs.110).aspx
7 апр 14, 16:01    [15844571]     Ответить | Цитировать Сообщить модератору
 Re: прикладное приложение WPF XAML MVVM  [new]
cybermerlin
Member

Откуда:
Сообщений: 9
как такое создать?
у меня не получается maincontrol.xaml помещать при старте в окно
не могу назначить binding закрытия окна из viewmodel.usercontrol.cs
7 апр 14, 16:01    [15844573]     Ответить | Цитировать Сообщить модератору
 Re: прикладное приложение WPF XAML MVVM  [new]
cybermerlin
Member

Откуда:
Сообщений: 9
Lelouch,
по ссылке обычно декларативное объявление, значить в xaml.cs должен быть соответствующий метод с кодом исполнительным
7 апр 14, 16:03    [15844596]     Ответить | Цитировать Сообщить модератору
 Re: прикладное приложение WPF XAML MVVM  [new]
Lelouch
Member

Откуда: Москва
Сообщений: 1879
cybermerlin,

"binding закрытия окна" - это вообще что такое ?

cybermerlin
как такое создать?


RTFM?
7 апр 14, 16:04    [15844601]     Ответить | Цитировать Сообщить модератору
 Re: прикладное приложение WPF XAML MVVM  [new]
Lelouch
Member

Откуда: Москва
Сообщений: 1879
cybermerlin,

cybermerlin
по ссылке обычно декларативное объявление, значить в xaml.cs должен быть соответствующий метод с кодом исполнительным

1) Что там декларативного?)
2) Нет, не должен быть.
RTFM
7 апр 14, 16:06    [15844626]     Ответить | Цитировать Сообщить модератору
 Re: прикладное приложение WPF XAML MVVM  [new]
cybermerlin
Member

Откуда:
Сообщений: 9
Lelouch
cybermerlin,

"binding закрытия окна" - это вообще что такое ?


<Window x:Class="calc.View.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:helpers="clr-namespace:calc.Helpers"
        xmlns:vm="clr-namespace:calc.ViewModel" 
        xmlns:views="clr-namespace:calc.View"
        WindowStartupLocation="CenterScreen"
        helpers:Dialog.DialogResult="{Binding CloseWindowFlag}"
        Title="Калькулятор" Height="350" Width="520"
        DataContext="{DynamicResource MainControl}"
7 апр 14, 16:07    [15844630]     Ответить | Цитировать Сообщить модератору
 Re: прикладное приложение WPF XAML MVVM  [new]
Lelouch
Member

Откуда: Москва
Сообщений: 1879
cybermerlin,

helpers:Dialog.DialogResult="{Binding CloseWindowFlag}"

и что это за Helper?

http://msdn.microsoft.com/ru-ru/library/ms750612(v=vs.110).aspx
7 апр 14, 16:08    [15844640]     Ответить | Цитировать Сообщить модератору
 Re: прикладное приложение WPF XAML MVVM  [new]
Lelouch
Member

Откуда: Москва
Сообщений: 1879
Почему у вас в DataContext Control?
7 апр 14, 16:11    [15844671]     Ответить | Цитировать Сообщить модератору
 Re: прикладное приложение WPF XAML MVVM  [new]
cybermerlin
Member

Откуда:
Сообщений: 9
Lelouch,
ладно разобьем на этапы и перефразируем
я создал WPF проект в котором окно пустое View.MainWindow.xaml
и создал View.MainControl.xaml
и создал helpers.Dialog (содержит метод Close закрывающий окно и метод Minimize сворачивающий в трей окно)
и создал ViewModel.Base
содержит метод Close обращающийся к Dialog.Close
содержит метод Minimize из Dialog.Minimize
содержит метод Calculation - будет брать значение из поля какого-то и вычислять
и создал ViewModel.Main на базе Base
и создал View.CalcControl.xaml содержит поле textbox и кнопку Show
по show messagebox.show со значением из textbox


теперь по клику на кнопку Вычислить из View.MainControl должно взяться значение из View.CalcControl.xaml (если оно сейчас подгружено в окне) и вычислить

теперь самое важное, код вычисления находится в ViewModel.Calc.cs
--------------
1- чтобы мне это все реализовать, что куда надо писать?
2- хочу менять MainControl.xaml не меняя исполняемый функционал (.cs)
3- CalcControl имеет 2 вида, но работает с ViewMode.Calc.cs
7 апр 14, 16:22    [15844770]     Ответить | Цитировать Сообщить модератору
 Re: прикладное приложение WPF XAML MVVM  [new]
cybermerlin
Member

Откуда:
Сообщений: 9
Lelouch
Почему у вас в DataContext Control?

я думал именно так можно MainControl поместить в MainWindow
но этот фокус не сработал, вот и пришел сюда с вопросами :(
7 апр 14, 16:26    [15844823]     Ответить | Цитировать Сообщить модератору
 Re: прикладное приложение WPF XAML MVVM  [new]
Lelouch
Member

Откуда: Москва
Сообщений: 1879
cybermerlin,

После вашего объяснения все стало совсем запутанно)
7 апр 14, 16:27    [15844826]     Ответить | Цитировать Сообщить модератору
 Re: прикладное приложение WPF XAML MVVM  [new]
Lelouch
Member

Откуда: Москва
Сообщений: 1879
cybermerlin
Lelouch
Почему у вас в DataContext Control?

я думал именно так можно MainControl поместить в MainWindow
но этот фокус не сработал, вот и пришел сюда с вопросами :(


Почитайте хоть что-нибудь по WPF.
7 апр 14, 16:28    [15844840]     Ответить | Цитировать Сообщить модератору
 Re: прикладное приложение WPF XAML MVVM  [new]
cybermerlin
Member

Откуда:
Сообщений: 9
Lelouch
cybermerlin
пропущено...

я думал именно так можно MainControl поместить в MainWindow
но этот фокус не сработал, вот и пришел сюда с вопросами :(


Почитайте хоть что-нибудь по WPF.

не поверите
я читаю последние несколько дней
но не могу найти решения конкретно по задумке моей

хочу менять view как перчатки при этом в xaml.cs хочу минимум строк писать (лучше вообще не писать), чтобы весь функционал к кнопкам и боксам... цеплять прям в xaml
7 апр 14, 16:33    [15844894]     Ответить | Цитировать Сообщить модератору
 Re: прикладное приложение WPF XAML MVVM  [new]
Lelouch
Member

Откуда: Москва
Сообщений: 1879
cybermerlin,

я не знаю, что вы читаете. Я дал вам выше ссылки на Binding данных и команд. При чем там view.cs то ?
7 апр 14, 16:36    [15844921]     Ответить | Цитировать Сообщить модератору
 Re: прикладное приложение WPF XAML MVVM  [new]
cybermerlin
Member

Откуда:
Сообщений: 9
Lelouch,

по ссылкам нету ответа

скажите пожалуйста
как вы поступите (организуете код) ЕСЛИ
у вас 10 форм разных, на которых 10 из 40 кнопок выполняют которые выполняют одну и туже задачу, берут содержимое из 1-10 полей (зависит от вида формы) и вычисляют результат
результат помещают в какое-то поле
ближайшее, что мне приходит в Голову написать Класс статичный с функцией математической, которая на вход принимает массив значений и возвращает результат
а в каждой форме на кнопку навесить обработчик, который для каждой формы будет свой сецифичный, будет брать значения из полей и вызывать статичную функцию

но по сути у вас для всех этих форм однотипные обработчики, в которых только количество полей изменяется
что будете копировать код? мне лень
7 апр 14, 16:44    [15844984]     Ответить | Цитировать Сообщить модератору
 Re: прикладное приложение WPF XAML MVVM  [new]
cybermerlin
Member

Откуда:
Сообщений: 9
а что если форм не 10 а 1000 ?
7 апр 14, 16:44    [15844991]     Ответить | Цитировать Сообщить модератору
 Re: прикладное приложение WPF XAML MVVM  [new]
Lelouch
Member

Откуда: Москва
Сообщений: 1879
cybermerlin,

там есть ответ как организовать связывание с ViewModel...
Ответы "как написать код" можно получить в форуме "работа" с указанием цены.

автор
у вас 10 форм разных, на которых 10 из 40 кнопок выполняют которые выполняют одну и туже задачу, берут содержимое из 1-10 полей (зависит от вида формы) и вычисляют результат
результат помещают в какое-то поле


Например, создам базовую ViewModel с 10 базовыми командами и 10 базовыми полями. Остальные от нее унаследую.
7 апр 14, 17:09    [15845112]     Ответить | Цитировать Сообщить модератору
Все форумы / WPF, Silverlight Ответить