powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / mdi на базе вкладок
25 сообщений из 53, страница 2 из 3
mdi на базе вкладок
    #37479821
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVaЛучше бы ты призмы или калибурны осилил.С калабуризмами ознакомился. "В топку её" (с)
SeVaТвой так называемый менеджер пригоден только для лабораторной.И для них тоже.
SeVaНет проверок открыт ли уже документ так как это делается в VSМне нужно открытие нескольких экземпляров документов одного типа. Будет нужна такая проверка - добавится ещё строчек 10.
SeVaчастный случай без возможности составных view&viewModelКак ты можешь это утверждать, если не видел что из себя представляет класс ViewModel ( не нравится мне это название, но и во что переименовать никак не могу придумать :-) ).
SeVaнет запросов к пользователю если данные были измененыЭто мне не надо. Будет надо - добавлю.
SeVaи тд.Тоже добавлю когда будет надо.
SeVaЗЫ В новом проекте не будет ниодного диалога, без них можно спокойно обойтисьНадо средства выбирать под задачу, а не задачу подгонять под средства. Если в SL нелады с диалогами, это ещё не значит, что они не нужны.
...
Рейтинг: 0 / 0
mdi на базе вкладок
    #37479900
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
То, что ты показал - сочинение на вольную тему, а не работающий код. Какой-то нигде неиспользуемый MDIContainer, мутные viewmodel(есть большое подозрение, что это view), отсутствие minimize, maximize, укладывания в черепицу, как это делается в настоящих mdi, проверок открыто ли уже окно и тд.
Обсуждать тут нечего.
Калибурн работает без всяких, "если это понадобится", имеет внятный код, переносимость, документацию, примеры, полный функционал, а не выжимки, тестируется десятками тысяч человек и тд.
...
Рейтинг: 0 / 0
mdi на базе вкладок
    #37479946
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVaТо, что ты показал - сочинение на вольную тему, а не работающий код.Перечень ошибок, из-за которых не работает код в студию.

SeVaКакой-то нигде неиспользуемый MDIContainerМною используемый.

SeVaмутные viewmodelЕщё раз. Ты не видел что в себя включает класс ViewModel. Как можно делать какие-то выводы о его мутности?

SeVaесть большое подозрение, что это viewВ него инкапсулировано View.

SeVaотсутствие minimize, maximize, укладывания в черепицу, как это делается в настоящих mdiЭто не функционал Tabbed MDI в таком виде, в каком его понимает большинство из нас.

SeVaпроверок открыто ли уже окноЗачем спрашивать 2 раза об одном и том же?

SeVaОбсуждать тут нечего.Не хочешь - не обсуждай. Никто не заставляет. :-)

SeVaКалибурн работает без всяких, "если это понадобится"Да и флаг ему в руки...

SeVaимеет внятный кодМой код не менее внятен и гораздо более прост.

SeVaпереносимостьКуда? В линукс?

SeVaдокументацию, примерыУ меня по коду и примерам использования и так всё понятно. Коллектив не жалуется.

SeVaполный функционалКоторый на 90% не нужен в текущем проекте, и на 80% не нужен никогда. Ну и накой такое счастье?

SeVaа не выжимкиЗато имеем только то что нужно. Всё остальное не мозолит глаза.

SeVaтестируется десятками тысяч человек и тд.Их бы энергию да в мирных целях...
...
Рейтинг: 0 / 0
mdi на базе вкладок
    #37480770
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MDI контейнер - вовсе не mdi, viewmode - это view. Несколько строк, а столько мути.
Двух минут просмотра вполне достаточно, чтобы не тратить на это время дальше.
...
Рейтинг: 0 / 0
mdi на базе вкладок
    #37480888
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVaMDI контейнер - вовсе не mdiMDI - multi document interface. MDI необязательно делается дочерними окнами, как это по традиции сложилось в WinForms и Delphi. Даже название специально придумано - Tabbed MDI. А ты всё не веришь. :-)

SeVaviewmode - это view.В каком-то контексте класс может являться моделью, в каком-то представлением. Смотря относительно чего смотрим. Следует это знать.

Ах да, в мурзилках об этом не пишут, а свою точку зрения мы выработать не можем. Нынче это не модно. Мы можем только повторять за остальными и ломать голову над тем, каким образом впихнуть очередной невпихуемый калабуризм в текущий проект.
...
Рейтинг: 0 / 0
mdi на базе вкладок
    #37481419
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В мурзилаках используют привычную всем терминологию, которые все понимают. Те, кто не ходит в школу и не любит читать, придумывают свои велосипеды. А здесь читаем(view), а здесь мы рыбу заворачивали(оказывается, что viewmodel) - откровенное пачкание мозгов
...
Рейтинг: 0 / 0
mdi на базе вкладок
    #37481435
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVaВ мурзилаках используют привычную всем терминологию, которые все понимают.Авторы мурзилок часто просто зарабатывают деньги и вообще мало понимают о чём пишут.
SeVaТе, кто не ходит в школу и не любит читать, придумывают свои велосипеды.Если это что-то не сложное, зачем тянуть в проект левый калабуризм?
...
Рейтинг: 0 / 0
mdi на базе вкладок
    #37481774
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Просто мурзилки нужно читать правильные, на мурзилку Фаулера все ссылаются. Есть определенная, общепринятая терминология, если вместо педали газа находится тормоз, то далеко не уедешь
...
Рейтинг: 0 / 0
mdi на базе вкладок
    #37481916
mdi и wpf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ок, всем спасибо за подсказки и обсуждения.
Наверное, спор можно и прекратить - с мнениями мы уже ознакомились :)

Тут еще маленький нюанс остался.
Хотелось-бы выяснить, и дело будет ок.

Мне нужен простой mdi-интерфейс, на базе TabControl.
Я на форму кинул TabControl с такой привязкой к обьектам в VM:
Код: plaintext
1.
<TabControl Grid.Row="1" Margin="3" Name="tab" ItemsSource ="{Binding Documents, Mode=TwoWay}" 
SelectedItem="{Binding SelectedDocument, Mode=TwoWay}" ItemTemplate="{StaticResource ClosableTabItemTemplate}"/> 

Осталось только более-менее грамотно научится устанавливать Header для TabItem/ClosableTabItem. Так, что-бы заголовок был по заголовку документа. Пока, как ни крутил - ни чего не получилось.

Не направите?
...
Рейтинг: 0 / 0
mdi на базе вкладок
    #37482022
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mdi и tabbed интерфейс - две разные педали.
Тема с заголовками неоднократно обсуждалась здесь(необходим нужный ItemContainerStyle) и в goole
...
Рейтинг: 0 / 0
mdi на базе вкладок
    #37482058
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mdi и wpfОсталось только более-менее грамотно научится устанавливать Header для TabItem/ClosableTabItem. Так, что-бы заголовок был по заголовку документа. Пока, как ни крутил - ни чего не получилось.

Не направите?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
<UserControl x:Class="SspMain.FrmMdiContainer"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:s="clr-namespace:SspMain">

    <UserControl.InputBindings>
        <KeyBinding Gesture="Ctrl+F4" Command="{Binding ActCloseTabItem}"/>
    </UserControl.InputBindings>
    
    <UserControl.Resources>

        <DataTemplate x:Key="TabItemHeaderTemplate">
            <StackPanel Orientation="Horizontal">
                <ContentControl VerticalAlignment="Center"
                                Content="{Binding}"
                                IsTabStop="False"
                                FontWeight="Bold"/>
                <Button Margin="10,2,0,2" 
                        Padding="3"
                        VerticalAlignment="Center"                     
                        Style="{s:SkinResource {x:Static ToolBar.ButtonStyleKey}}"
                        FocusVisualStyle="{x:Null}"
                        ToolTip="Закрыть (Ctrl+F4)"
                        Command="{Binding DataContext.ActCloseTabItem, RelativeSource={RelativeSource AncestorType={x:Type s:FrmMdiContainer}}}"
                        CommandParameter="{Binding DataContext, RelativeSource={RelativeSource AncestorType={x:Type TabItem}}}">
                    <Image Source="Close.png"/>
                </Button>
            </StackPanel>
        </DataTemplate>

        <Style x:Key="TabItemStyle" TargetType="TabItem" BasedOn="{s:SkinStyle}">
            <Setter Property="Header" Value="{Binding Header}"/>
            <Setter Property="Content" Value="{Binding View}"/>
            <Setter Property="HeaderTemplate" Value="{StaticResource TabItemHeaderTemplate}"/>
            <Setter Property="HorizontalContentAlignment" Value="Stretch"/>
            <Setter Property="VerticalContentAlignment" Value="Stretch"/>
        </Style>

    </UserControl.Resources>

    <TabControl ItemsSource="{Binding Documents.DataView}"
                ItemContainerStyle="{StaticResource TabItemStyle}"/>
</UserControl>
...
Рейтинг: 0 / 0
mdi на базе вкладок
    #37482094
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVaТема с заголовками неоднократно обсуждалась здесь(необходим нужный ItemContainerStyle) и в goole Ага. Вот пример с одной из твоих ссылок . Блог на MSDN, между прочим. Как бэ довольно-таки уважаемый ресурс. И что мы видим?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
private T FindVisualParent<T>( DependencyObject node ) where T : DependencyObject   
{   
    DependencyObject parent = VisualTreeHelper.GetParent( node );   
    if ( parent == null || parent is T ) 
        return (T)parent;   

    // Recurse up the visual tree.   
    return FindVisualParent<T>( parent );
}

Такое чувство, что мировое сообщество программистов постепенно деградирует.

Так что все эти калабуризмы никуда не упёрлись. Я лучше сам напишу и буду спать спокойно.
...
Рейтинг: 0 / 0
mdi на базе вкладок
    #37482132
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты думаешь, что RelativeSource отличается чем-то принципиально от Find? В Prims может быть любой интерфейс, который можно безболезненно сменить на другой, что я уже делал неоднократно, а у тебя только единственное, частное решение.
...
Рейтинг: 0 / 0
mdi на базе вкладок
    #37482137
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVaТы думаешь, что RelativeSource отличается чем-то принципиально от Find? В Prims может быть любой интерфейс, который можно безболезненно сменить на другой, что я уже делал неоднократно, а у тебя только единственное, частное решение.Причём тут RelativeSource? Я тебе говорю о рекурсии там где без неё можно обойтись.
...
Рейтинг: 0 / 0
mdi на базе вкладок
    #37482157
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVaВ Prims может быть любой интерфейс, который можно безболезненно сменить на другой, что я уже делал неоднократно, а у тебя только единственное, частное решение.Я чё-то не пойму. Неужели без калабуризма я не смогу изменить FrmMdiContainer.xaml без изменения MdiContainer.cs . Чем тут калабуризм может помочь?
...
Рейтинг: 0 / 0
mdi на базе вкладок
    #37482164
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К,

да ты все правильно мыслишь. ты сам все можешь сделать.
и это для тебя элементарно.

Другим же впарили, что думать не надо, все придумали, представьте , что вы закупщик на заводе, просто закупайте у нас эту деталь и эту и потом сварите и будет программа.
Ктото повелся, ктото послал.
...
Рейтинг: 0 / 0
mdi на базе вкладок
    #37482255
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexeiKАлексей К,

да ты все правильно мыслишь. ты сам все можешь сделать.
и это для тебя элементарно.

Другим же впарили, что думать не надо, все придумали, представьте , что вы закупщик на заводе, просто закупайте у нас эту деталь и эту и потом сварите и будет программа.
Ктото повелся, ктото послал.
Да, нет ребята, есть нормальные заводы с универсальными станками и другими поставщиками(никто сейчас не производит полностью всю продукцию), и есть гаражные шаражки с допотопным инструментарием, который кое-как склепан самостоятельно
...
Рейтинг: 0 / 0
mdi на базе вкладок
    #37482265
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVa,

во!
вся фишка в том, что нету того, кто может определить заводом или шарашкой является предмет обсуждения :)
может быть набор частных мнений, что сейчас есть, и это вызывает постоянные споры и не понимания.
...
Рейтинг: 0 / 0
mdi на базе вкладок
    #37482270
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVaДа, нет ребята, есть нормальные заводы с универсальными станками и другими поставщиками(никто сейчас не производит полностью всю продукцию), и есть гаражные шаражки с допотопным инструментарием , который кое-как склепан самостоятельноЭто ещё надо доказать.
...
Рейтинг: 0 / 0
mdi на базе вкладок
    #37482273
mdi и wpf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SeVa,

В первый раз, наверное, лучше попробовать сделать самому.
Когда на потоке - через правильных субподрядчиков.
...
Рейтинг: 0 / 0
mdi на базе вкладок
    #37482274
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexeiKДругим же впарили, что думать не надо, все придумали, представьте , что вы закупщик на заводе, просто закупайте у нас эту деталь и эту и потом сварите и будет программа.
Ктото повелся, ктото послал.Ну да. Как-то так. :-)
...
Рейтинг: 0 / 0
mdi на базе вкладок
    #37482280
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mdi и wpfВ первый раз, наверное, лучше попробовать сделать самому.Очень помогает при освоении новой технологии.
...
Рейтинг: 0 / 0
mdi на базе вкладок
    #37482319
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что здесь доказывать, взять готовый инструмент и если нужно, то за полчаса написать акцию для закрытия окон, или ждать, когда появится самопал, который еще нужно будет протестировать и отловить баги.
Если левша из гаража попадет на завод, он, конечно, будет в недоумении зачем же нужны цифровые станки.
А для лучшего понимания больше всего подходит код, а не чтение букварей. По wpf\sl нет еще такого, где все моменты объяснены
...
Рейтинг: 0 / 0
mdi на базе вкладок
    #37482351
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVaПо wpf\sl нет еще такого, где все моменты объясненыТо-то и оно. Авторы калабуризмов сами пока не знают как лучше. Экспериментируют. Выкладывают плоды своих экспериментов на суд общественности. А ты предлагаешь тащить их код в продакшн. Неразумно.
...
Рейтинг: 0 / 0
mdi на базе вкладок
    #37482616
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КSeVaПо wpf\sl нет еще такого, где все моменты объясненыТо-то и оно. Авторы калабуризмов сами пока не знают как лучше. Экспериментируют. Выкладывают плоды своих экспериментов на суд общественности. А ты предлагаешь тащить их код в продакшн. Неразумно.
Автор калибурн сам разработчик, применяет его у себя, а потом уже выкладывает, это тестируют десятки тысяч, а у тебя хотя бы один unit test есть?
...
Рейтинг: 0 / 0
25 сообщений из 53, страница 2 из 3
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / mdi на базе вкладок
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]