Здравствуйте, baranovda, Вы писали:
B>Если View знает о Presenter, а Presenter — о View, то, например, у меня вчера возникло непонимание и желание слить их воедино
Неверно, view знает о презентере, это нормально, у нее один вполне реальный презентер и дальнейших вариантов работы этой view с другим презентером я не представляю. Презентер же знает только об интерфейсе view. Посему его легко тестировать подсовывая собственные реализации этого интерфейса. Слив их воедино мы лишаемся четкого разделения логики представления и БЛ. И лишаемся юнит тестирования обеих.
B>http://www.rsdn.ru/article/patterns/ModelViewPresenter.xml
Здравствуйте, gandjustas, Вы писали:
B>>Резонно. Но от BindingSource, которые в своём роде тоже являются презентерами, отказываться не хочу. G>Не надо отказываться. G>Будет примерно так:
G>
G>public class XXXForm: Form, IXXXView
G>{
G> public XXXForm(IXXXPresenter presentr)
G> {
G> presenter.SetView(this); //костыль так как не поддерживаются рекурсивные зависимости
G> ...
G> }
G> public void IXXXView.SetDataSourcce(..)
G> {
G> //настройка BindingSource
G> }
G>}
G>public class XXXPresenenter: IXXXPresenter
G>{
G> public XXXPresenenter(/*здесь все зависимости*/)
G> {
G> ...
G> }
G> ...
G>}
G>
Сорри за глупый вопрос, но у меня почему-то не утряслось в башке
для public void IXXXView.SetDataSourcce(..), что должно стать параметром?
Z>Сорри за глупый вопрос, но у меня почему-то не утряслось в башке Z>для public void IXXXView.SetDataSourcce(..), что должно стать параметром?
Я думаю можно BindingSource.
Здравствуйте, Ziggi111, Вы писали:
Z>Сорри за глупый вопрос, но у меня почему-то не утряслось в башке Z>для public void IXXXView.SetDataSourcce(..), что должно стать параметром?
Коллекция объектов или DataSet данные из которых надо связывать с контролами.
Здравствуйте, Dog, Вы писали:
Z>>Сорри за глупый вопрос, но у меня почему-то не утряслось в башке Z>>для public void IXXXView.SetDataSourcce(..), что должно стать параметром? Dog>Я думаю можно BindingSource.
ничего не понял.
Если не использовать никаких паттернов, то получается примерно такой код
this.myBindingSource.DataSource = typeof (myType);
this.label1.DataBindings.Add (new System.Windows.Forms.Binding ("Text", this.myBindingSource, "Property1", true));
this.Text1.DataBindings.Add (new System.Windows.Forms.Binding ("Text", this.myBindingSource, "Property2", true));
если мы напишем
public void IXXXView.SetDataSourcce(BindingSource myBindingSource)
{
//То что тогда здесь?
}
Здравствуйте, gandjustas, Вы писали:
G>Здравствуйте, Ziggi111, Вы писали:
Z>>Сорри за глупый вопрос, но у меня почему-то не утряслось в башке Z>>для public void IXXXView.SetDataSourcce(..), что должно стать параметром?
G>Коллекция объектов или DataSet данные из которых надо связывать с контролами.
или объект модели, если мы редактируем один объект. так?
но ведб если это так, то получается, что View знает о модели. или я что-то путаю?
Здравствуйте, Ziggi111, Вы писали:
Z>Здравствуйте, gandjustas, Вы писали:
G>>Здравствуйте, Ziggi111, Вы писали:
Z>>>Сорри за глупый вопрос, но у меня почему-то не утряслось в башке Z>>>для public void IXXXView.SetDataSourcce(..), что должно стать параметром?
G>>Коллекция объектов или DataSet данные из которых надо связывать с контролами. Z>или объект модели, если мы редактируем один объект. так?
ага
Z>но ведб если это так, то получается, что View знает о модели. или я что-то путаю?
Не знает. Данные — это не "модель".
Здравствуйте, gandjustas, Вы писали:
G>Здравствуйте, Ziggi111, Вы писали:
Z>>Здравствуйте, gandjustas, Вы писали:
G>>>Здравствуйте, Ziggi111, Вы писали:
Z>>>>Сорри за глупый вопрос, но у меня почему-то не утряслось в башке Z>>>>для public void IXXXView.SetDataSourcce(..), что должно стать параметром?
G>>>Коллекция объектов или DataSet данные из которых надо связывать с контролами. Z>>или объект модели, если мы редактируем один объект. так? G>ага
Z>>но ведб если это так, то получается, что View знает о модели. или я что-то путаю? G>Не знает. Данные — это не "модель".
получается что на самой форме все останется как и было, т.е. в дизайнере проставляем контролам BindingSource, самому BindingSource проставляем DataSource и т.д.
а в этом методе просто пишем
public void IXXXView.SetDataSourcce(MyClass Value)
{
BindingSource.DataSource = Value;
}
Здравствуйте, Ziggi111, Вы писали:
Z>Здравствуйте, gandjustas, Вы писали:
G>>Здравствуйте, Ziggi111, Вы писали:
Z>>>Здравствуйте, gandjustas, Вы писали:
G>>>>Здравствуйте, Ziggi111, Вы писали:
Z>>>>>Сорри за глупый вопрос, но у меня почему-то не утряслось в башке Z>>>>>для public void IXXXView.SetDataSourcce(..), что должно стать параметром?
G>>>>Коллекция объектов или DataSet данные из которых надо связывать с контролами. Z>>>или объект модели, если мы редактируем один объект. так? G>>ага
Z>>>но ведб если это так, то получается, что View знает о модели. или я что-то путаю? G>>Не знает. Данные — это не "модель".
Z>получается что на самой форме все останется как и было, т.е. в дизайнере проставляем контролам BindingSource, самому BindingSource проставляем DataSource и т.д. Z>а в этом методе просто пишем
Z>
Здравствуйте, Dog, Вы писали:
Dog>>>Я думаю можно BindingSource. Z>>ничего не понял. Z>>Если не использовать никаких паттернов, то получается примерно такой код Z>>
Z>>this.myBindingSource.DataSource = typeof (myType);
Z>>this.label1.DataBindings.Add (new System.Windows.Forms.Binding ("Text", this.myBindingSource, "Property1", true));
Z>>this.Text1.DataBindings.Add (new System.Windows.Forms.Binding ("Text", this.myBindingSource, "Property2", true));
Z>>
Z>>если мы напишем Z>>
Z>>public void IXXXView.SetDataSourcce(BindingSource myBindingSource)
Z>>{
Z>> //То что тогда здесь?
Z>>}
Z>>
Dog>
Ну да, у меня тоже такая мысль была, но мне нужно было просто уложить окончательно всё в голове
Наверно делать буду именно так. Не могу объяснить почему, но почему-то кажется что так красивше
Здравствуйте, gandjustas, Вы писали:
сорри, а не могли бы Вы немного помочь в осмыслении некоторых вещей. могли бы мы с Вами пообчаться помимо форума(ася, почта etc)