powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Получения данных из DataGrid WPF MVVM
450 сообщений из 450, показаны все 18 страниц
Получения данных из DataGrid WPF MVVM
    #38327456
Alex_studenticu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день господа форумчане.
Возник вопрос, как при использовании паттерна MVVM в WPF при выделении строки в DataGrid получить её содержимое?
вот код:
1. ViewModel
получаем заполненный DataSet
Код C#

Код: c#
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.
//в конструкторе
SongTable = _songDs.Tables["****"];
 
// свойство 
private DataTable _songTable;
        public DataTable SongTable
        {
            get { return _songTable; }
            set
            {
                if (_songTable == value) return;
                _songTable = value;
                OnPropertyChanged(SongTable.ToString());
            }
        }
 
  private List<Song> _selectSong;
        public List<Song> SelectSong {
            get { return _selectSong; }
            set
        {
            if (_selectSong == value) return;
            _selectSong = value;
            OnPropertyChanged("SelectSong");
        } }
 


2.Model
Код XML

Код: xml
1.
2.
3.
4.
<DataGrid AutoGenerateColumns="True"  Height="67" HorizontalAlignment="Left" Margin="12,12,0,0"
                  Name="dataGrid1" VerticalAlignment="Top" Width="479" ItemsSource="{Binding SongTable, Mode=TwoWay}"
                 SelectedItem="{Binding SelectSong,Mode=TwoWay}"/>
 


Насколько я понимаю, при выделении строки в DataGrid должно сработать SelectedItem и данные передадутся в SelectSong, но этого не происходит
Подскажите пожалуйста!
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38327546
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SelectedItem - объект, а не список. public List<Song> Song SelectSong
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38327567
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVaSelectedItem - объект, а не список. public List<Song> Song DataRowView SelectSongПоправил
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38328436
Alex_studenticu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
к сожалению проблема не в том Song or List<Son>, там вообще просто с DataGrid при выделении строки совсем другой тип возвращается:(
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38329026
unknownfromrus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_studenticu,

Недавно что-то похожее делал.
Сажаешь обработчик события в датагрид (можешь расширить текущий датагрид либо добавить бихейвер) по клику мышкой на датагриде. Далее через InputHitTest ищешь парент с нужным тебе типом - в твоем случае DataGridRow.
Ну и в принципе все.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38329296
unknownfromrus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_studenticu,

Поправлю себя.
Я общем виде описал тебе метод получения итема, который ты посадил в датароу (точнее сам датагрид посадил).
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38460127
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кто как решает такую задачу?

Как принято красиво при нажатии кнопка “Отмена” (ESC или крестик) вернуть обратно первоначальное значение выделенной строки грида?

Я конечно могу подтасовать новый экземпляр и намапить его свойства из предыдущего, тогда у меня будут разные объекты. Но как-то это жестоко…

...
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
<Window x:Class="WpfApplication.EmployeeDetailWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="EmployeeDetailWindow" Height="249" Width="338" WindowStartupLocation="CenterOwner" ResizeMode="NoResize">
    <Grid>
        <TextBox Text="{Binding Path=Employee.LastName}" HorizontalAlignment="Left" Height="23" 
Margin="10,10,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="300"/>
        <TextBox Text="{Binding Employee.FirstName}" HorizontalAlignment="Left" Height="23" Margin="10,38,0,0" TextWrapping="Wrap"
VerticalAlignment="Top" Width="300"/>
        <Button Command="{Binding SaveCommand}" CommandParameter="{Binding Path=Employee}" Content="Сохранить" HorizontalAlignment="Right"
Margin="0,0,102,10" VerticalAlignment="Bottom" Width="75"/>
        <Button IsCancel="True" Content="Отмена" Margin="0,0,22,10" VerticalAlignment="Bottom" HorizontalAlignment="Right" Width="75" />
    </Grid>
</Window>



Код: c#
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.
public class EmployeeViewModel
{
    private IDataContext Context;
    private IWindowService Service;

    public EmployeeViewModel()
    {
        Context = new DataContext(); // todo IoC resolve
        Service = new WindowService(); // todo IoC resolve
    }

    public Employee Employee { get; set; }

    public ICommand SaveCommand
    {
        get
        {
            return new RelayCommand((action) =>
            {
                Context.UpdateEmployee(action as Employee);
                Service.CloseActiveWindow();
            });
        }
    }
}

...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38460129
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38460261
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проще для формы редактирования запросить с сервера свою копию записи, или клонировать текущую из грида. При применении в форме заменить текущую запись в гриде на запись из формы редактирования.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38460267
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУЯ конечно могу подтасовать новый экземпляр и намапить его свойства из предыдущего, тогда у меня будут разные объекты.Упс, не заметил. :-)
МСУНо как-то это жестоко…Жестоко - это видеть в основной форме с гридом незакоммиченные изменения из формы редактирования.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38460300
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К, ну вообщем да, так и сделал. Но гложет сомнение, что можно как-то нечерезжопно сделать... :)

EmployeesViewModel
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
public ICommand EmployeeSelectCommand
{
    get
    {
        return new RelayCommand((action) =>
        {
            if (PropertyChanged != null && action != null)
            {                        
                if (Service.OpenEmployeeDetailWindow(action as Employee))
                {
                    // Нажали сохранить - обновляемся
                    PropertyChanged(this, new PropertyChangedEventArgs("Employees"));
                }
            }
        });
    }
}




EmployeesViewModel
Код: c#
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.
public class EmployeeViewModel
{
    private IDataContext Context;
    private IWindowService Service;

    public EmployeeViewModel()
    {
        Context = new DataContext(); // todo IoC resolve
        Service = new WindowService(); // todo IoC resolve
    }

    // Пачка дублирующего уныния, вместо пряморукого объекта Employee :(
    public int EmployeeId { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }

    public ICommand SaveCommand
    {
        get
        {
            return new RelayCommand((action) =>
            {
                var vm = action as EmployeeViewModel;
                Context.UpdateEmployee(vm.EmployeeId, vm.FirstName, vm.LastName);
                Service.CloseActiveWindow(true);
            });
        }
    }
}



Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
<Window>
    <Grid>
        <TextBox Text="{Binding LastName}" HorizontalAlignment="Left" Height="23" Margin="10,10,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="300"/>
        <Button Command="{Binding SaveCommand}" CommandParameter="{Binding RelativeSource={RelativeSource AncestorType={x:Type Window}}, Path=DataContext}" Content="Сохранить" HorizontalAlignment="Right" Margin="0,0,102,10" VerticalAlignment="Bottom" Width="75"/>
        <Button IsCancel="True" Content="Отмена" Margin="0,0,22,10" VerticalAlignment="Bottom" HorizontalAlignment="Right" Width="75" />
        <TextBox Text="{Binding FirstName}" HorizontalAlignment="Left" Height="23" Margin="10,38,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="300"/>
    </Grid>
</Window>



Лёня, попинай, если что :)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38460307
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гкхм...

А не проще на команду сохранения и отмены "посадить" в конце чтение объекта из базы? Просто в случае отмены - не сохранять.

И IEditableObject - разве не для чего-то такого "придуман"?
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38460311
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ// Пачка дублирующего уныния, вместо пряморукого объекта Employee :(
public int EmployeeId { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }

Я бы не стал без необходимости дублировать поля модели во вьюмодели.
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
class Employee
{
    public int EmployeeId { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
}

class EmployeeViewModel
{
    public Employee Model { get; set; }
}
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38460337
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУЛёня, попинай, если что :)Забудь на время про "MVVM бэстпрактик". Накидай прототип приложения с логикой в code-behind. Потом выноси код из code-behind во ViewModel по мере необходимости. Так будет лучше, поверь мне. :-)

зы: Будут проблемы с биндингом из XAML на code-behind - спрашивай, подскажу, решения есть...
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38460379
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУКто как решает такую задачу?

Как принято красиво при нажатии кнопка “Отмена” (ESC или крестик) вернуть обратно первоначальное значение выделенной строки грида?

Я конечно могу подтасовать новый экземпляр и намапить его свойства из предыдущего, тогда у меня будут разные объекты. Но как-то это жестоко…

Ряд товарисчей считают, что такая штука реализуется через Undo/Redo, постороенном на основе Command pattern - как-то так . Писанины много конечно, но вроде как для этого есть отдельные фреймворки - типа вот этого: http://muf.codeplex.com/. Разумеется, при нежелании тащить в свой проект сторонние компоненты, можно написать свой.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38460384
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MonochromatiqueА не проще на команду сохранения и отмены "посадить" в конце чтение объекта из базы? Просто в случае отмены - не сохранять.
Как-то сложно. У меня на отмене вообще ничего не сидит.

MonochromatiqueИ IEditableObject - разве не для чего-то такого "придуман"?
Вариант, да.

Алексей КЯ бы не стал без необходимости дублировать поля модели во вьюмодели.
Так тоже самое получается. Мне нужно заново перемапить Employee, чтобы он "отвязался" от грида. Но в принципе, согласен.

Алексей КПотом выноси код из code-behind во ViewModel по мере необходимости. Так будет лучше, поверь мне. :-)
Не хочу :)

Алексей Кзы: Будут проблемы с биндингом из XAML на code-behind - спрашивай, подскажу, решения есть...
Ок, спс :)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38460388
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры ПавловныРяд товарисчей считают, что такая штука реализуется через Undo/Redo, постороенном на основе Command pattern - как-то так . Писанины много конечно, но вроде как для этого есть отдельные фреймворки - типа вот этого: http://muf.codeplex.com/. Разумеется, при нежелании тащить в свой проект сторонние компоненты, можно написать свой.
Стараюсь делать нативщиной, у меня даже RelayCommand свой :)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38460412
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУСтараюсь делать нативщиной, у меня даже RelayCommand свой :)Одобряю. :-)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38460428
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще этот xaml какой-то хрупковатый, чуть пукнул в сторонке, завалилось к ебени всё вью - мвц поприятнее будет :)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38460435
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУСтараюсь делать нативщиной, у меня даже RelayCommand свой :)
Это нормально, каждый впф-ник имеет в заначке свой собственный самописный фреймворк, даже если использует еще какие-то другие. У меня тоже есть такое.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38460436
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУВообще этот xaml какой-то хрупковатый, чуть пукнул в сторонке, завалилось к ебени всё вьюЭто поначалу, потом привыкнешь. :-)
МСУмвц поприятнее будет :)Чему там ломаться? Там дизайнера в принципе нету. Может оно и правильно...
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38460438
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры ПавловныМСУСтараюсь делать нативщиной, у меня даже RelayCommand свой :)
Это нормально, каждый впф-ник имеет в заначке свой собственный самописный фреймворк, даже если использует еще какие-то другие. У меня тоже есть такое.+1
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38460452
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры ПавловныМСУСтараюсь делать нативщиной, у меня даже RelayCommand свой :)
Это нормально, каждый впф-ник имеет в заначке свой собственный самописный фреймворк, даже если использует еще какие-то другие. У меня тоже есть такое.
Это да, но я должен реально прочувствовать, что без того или иного фреймворка спокойного жить не получится. Пока не вижу такой необходимости в использовании сторонних грабель. Возможно потом изменится мнение...

Алексей КЧему там ломаться? Там дизайнера в принципе нету. Может оно и правильно...
Ну дизайнер есть у WebForms, дизайнер - это хорошо. Основной минус замла от хтмл в том, что нельзя прям в студийной отладке править декларативнщину. Бесит всё время стопить апп :(
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38460500
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей КЧему там ломаться? Там дизайнера в принципе нету. Может оно и правильно...
Ну дизайнер есть у WebForms,Ты говорил про МВЦ.
МСУдизайнер - это хорошо.Не всегда. Поддержка дизайнера требует определённых жертв. Это было особенно актуально в WinForms. К счастью, этот ужас давно в прошлом. :-)

В WPF дизайнер тоже, бывает, даёт о себе знать, но редко.

Впрочем, я отвык от дизайнера. Привык писать XAML вручную. Такой подход тоже имеет свои преимущества.
МСУОсновной минус замла от хтмл в том, что нельзя прям в студийной отладке править декларативнщину. Бесит всё время стопить апп :(В VS2010 бесят тормоза дизайнера. В более поздних VS это обещали поправить. К сожалению, использовать их не могу, WinXP сцукко.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38460523
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КТы говорил про МВЦ.
А в мвц запрещено использовать винформз?

Алексей КНе всегда. Поддержка дизайнера требует определённых жертв. Это было особенно актуально в WinForms. К счастью, этот ужас давно в прошлом. :-)
Не понимаю, о каких жертвах идет речь? :)

Алексей КВпрочем, я отвык от дизайнера. Привык писать XAML вручную. Такой подход тоже имеет свои преимущества.
Согласен. Но первоначально выбрать компонент из палитры, положить его, отцентрировать, задать через F2 название той же кнопки - весьма приятно.

Алексей КВ VS2010 бесят тормоза дизайнера. В более поздних VS это обещали поправить. К сожалению, использовать их не могу, WinXP сцукко.
Уже больше года не трогал десятку... Сейчас 12 и 13 студия.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38460525
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КВ VS2010 бесят тормоза дизайнера.
Дизайнера, или редактора разметки? Я дизайнером фактически ни разу и не воспользовался - разве что сто лет назад для хлловорлда, но вот редактор разметки - да, бывает просто вешает студию. Немного помогает отключение решарпера, т.к. разметку он тоже мониторит, но задалбывает постоянно включать-выключать решарпер. Поэтому я часто пишу разметку в открытом рядом SharpDevelop - получается очень даже быстро.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38460578
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры ПавловныАлексей КВ VS2010 бесят тормоза дизайнера.
Дизайнера, или редактора разметки? Я дизайнером фактически ни разу и не воспользовался - разве что сто лет назад для хлловорлда, но вот редактор разметки - да, бывает просто вешает студию. В редакторе разметки используются элементы дизайнера, когда включается режим с возможностью работы со свойствами элемента, на котором стоит курсор, в "пропертигриде". При холодном переключении в этот режим начинаются самые тормоза. Открытие нового документа в режиме разметки решает эту проблему, там соответствующая настройка в VS имеется.
Сон Веры ПавловныНемного помогает отключение решарпера, т.к. разметку он тоже мониторит, но задалбывает постоянно включать-выключать решарпер.Решарпером не пользуюсь.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38460588
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КОткрытие нового документа в режиме разметки решает эту проблему, там соответствующая настройка в VS имеется.
Я в курсе, эта настройка у меня всегда включена, т.е. документы всегда открываются только в режиме разметки. Однако иногда при переключении на таб с xaml'ем, при внесении изменений в разметку, и т.п. тормоза превращаются в глухое зависание - приходится убивать процесс студии. VS2010, наблюдается и на WinXP на работе, и на Win7 дома.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38460600
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей КТы говорил про МВЦ.
А в мвц запрещено использовать винформз?Таки веБформз? :-)

Но вроде как нынче модно пользоваться разором.

МСУАлексей КНе всегда. Поддержка дизайнера требует определённых жертв. Это было особенно актуально в WinForms. К счастью, этот ужас давно в прошлом. :-)
Не понимаю, о каких жертвах идет речь? :)Одна поддержка сериализации в код чего стоит. Но не будем об этом. :-)

Тут подумалось. А ведь в довпфную эру авторы Делфи могли сделать реально качественный продукт на базе .Net: IDE с нормальным визуальным дизайнером и нормальную библиотеку на замену WinForms, пока MS возилось со своим WPF, который стал юзабелен только с выходом .Net 4 в 2010-м году. Благо, опыт у них был. Потом заточили бы его под Mono. Что им помешало, непонятно. Вероятно, чей-то умысел, не иначе. В итоге, проср@ли они своё счастье, теперь мучаются . Аж жалко...

МСУАлексей КВпрочем, я отвык от дизайнера. Привык писать XAML вручную. Такой подход тоже имеет свои преимущества.
Согласен. Но первоначально выбрать компонент из палитры, положить его, отцентрировать, задать через F2 название той же кнопки - весьма приятно."Одинхер" (ц) DataTemplate/ControlTemplate дизайнером не поддерживаются. Если привыкнуть к дизайнеру, может возникнуть предвзятое к ним отношение. В результате, там где удобнее их использовать будет применён UserControl ради возможности использования дизайнера. Я бы не советовал. :-)

Алексей КВ VS2010 бесят тормоза дизайнера. В более поздних VS это обещали поправить. К сожалению, использовать их не могу, WinXP сцукко.
Уже больше года не трогал десятку... Сейчас 12 и 13 студия.[/quot]Даже немного завидую. :-)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38460604
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУУже больше года не трогал десятку... Сейчас 12 и 13 студия.Даже немного завидую. :-)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38460611
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КТаки веБформз? :-)
Но вроде как нынче модно пользоваться разором.
Таки даже вебфорс + мвц + разор + аспх. Слабо? :) http://codearticles.ru/articles/2323

Алексей КОдна поддержка сериализации в код чего стоит. Но не будем об этом. :-)
А мне то чего с этого? Не я ж пишу эти ужастики :)

Алексей КАж жалко...
Бросай все эти шалости, айда на мвц - WPF чисто для пукалок, когда веб не приемлем (0.01% случаев)

Алексей КЯ бы не советовал. :-)
Ну ок, шут бы с этим десигнером :)

Алексей КДаже немного завидую. :-)
Так накати, чё :)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38460613
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КРешарпером не пользуюсь.
+1К очков в карму с лёту :)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38460630
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей КТаки веБформз? :-)
Но вроде как нынче модно пользоваться разором.
Таки даже вебфорс + мвц + разор + аспх. Слабо? :) http://codearticles.ru/articles/2323 Верю. :-)
МСУАлексей КОдна поддержка сериализации в код чего стоит. Но не будем об этом. :-)
А мне то чего с этого? Не я ж пишу эти ужастики :)А я писал. :-)
МСУАлексей КАж жалко...
Бросай все эти шалости, айда на мвц - WPF чисто для пукалок, когда веб не приемлем (0.01% случаев) Но это у кого как. :-) Впрочем, вероятно в следующем году буду с этим знакомиться более подробно. Потребность есть уже сейчас, но некогда.
МСУАлексей КДаже немного завидую. :-)
Так накати, чё :)В пятницу планирую. :-)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38460650
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КА я писал. :-)
Истинные арийцы дельфисты ну прям не могут без садомазо, понимаю :)

Алексей КПотребность есть уже сейчас, но некогда
Правильно, пора всю эту похабщину на правильные рельсы ставить :)

Алексей КВ пятницу планирую. :-)
Ок )
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38460657
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей КА я писал. :-)
Истинные арийцы дельфисты ну прям не могут без садомазо, понимаю :)Ой, кто бы говорил. Типа сам на Делфи не писал ни разу.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38460658
netivan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторБросай все эти шалости, айда на мвц - WPF чисто для пукалок, когда веб не приемлем (0.01% случаев)
не, после WPF уже обратно не хочется. яваскрипты там всякие и никаких биндингов)
автор+1К очков в карму с лёту :)
не, -1к очков )
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38460681
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netivanпосле WPF уже обратно не хочется. яваскрипты там всякие и никаких биндингов)
Просто нужно научиться этого готовить :)

Алексей КОй, кто бы говорил
Как вспомню

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
begin, end, reperal until keypressed...

var A, B : Integer;
   begin
     A:=3;
     B:=4;
     A:=A*A+B*B;
   end;



...
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38460716
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУnetivanпосле WPF уже обратно не хочется. яваскрипты там всякие и никаких биндингов)
Просто нужно научиться этого готовить :)Ну да, "JavaScript + преобразование HTML DOM" vs ControlTemplate это сильно. Срача на эту тему ещё не было...

МСУ
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
begin, end, reperal until keypressed...

var A, B : Integer;
   begin
     A:=3;
     B:=4;
     A:=A*A+B*B;
   end;



... Аж мурашки по коже...
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38460750
Фотография EDUARD SAPOTSKI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Фтопку WPF! Silverlight наше всиооо!
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38460771
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Началось...
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38460816
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУНачалось...Нет, ещё не все собрались.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38460840
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К, ты лучше подскажи, правильно ли так делать по феншую для поднятия окон? :)

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
public class WindowService : IWindowService
{
    public Window ActiveWindow { get { return Application.Current.Windows.OfType<Window>().SingleOrDefault(x => x.IsActive); } }

    public bool OpenEmployeeDetailWindow(Employee employee)
    {
        var view = new EmployeeDetailWindow();
        view.Owner = ActiveWindow;
        view.DataContext = new EmployeeViewModel { EmployeeId = employee.EmployeeId, FirstName = employee.FirstName, LastName = employee.LastName };
        return view.ShowDialog().GetValueOrDefault();
    }


    public void CloseActiveWindow(bool dialogResult)
    {
        var window = ActiveWindow;
        window.DialogResult = dialogResult;
        window.Close();
    }
}



А потом из вьюмодели честно курить IWindowService.Func.

Проблема в том, что мне в IWindowService нужно как-то красиво протащить активное окно из вьюмодели. Но вьюмодель ничего не должна знать о каких-то там окнах. Поэтому я в IWindowService поднимаю все окна Application.Current.Windows и ищу активное.

Зло? :)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38460873
netivan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

почему бы твоей VM не знать о своем Ownere? А он может быть типом Window и тогда проблем не будет что закрывать. Или не понял мысль?
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38460874
netivan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторНу да, "JavaScript + преобразование HTML DOM" vs ControlTemplate это сильно. Срача на эту тему ещё не было... да не может быть. Постоянно коллегам - любителям писать все на JS доказываю это)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38460926
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netivanМСУ,

почему бы твоей VM не знать о своем Ownere? А он может быть типом Window и тогда проблем не будет что закрывать. Или не понял мысль?+1

Если требуется сделать ссылку от ViewModel => View, надо делать такую ссылку. И не забываем про статический метод Window.GetWindow, который ищет родительское окно контрола.

зы: Есть ещё черезжопные способы не иметь ссылки VM => V и при этом управлять окном, но не хочу о них...
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38460932
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУНо вьюмодель ничего не должна знать о каких-то там окнах. Поэтому я в IWindowService поднимаю все окна Application.Current.Windows и ищу активное.

Зло? :)Нет. Это один из вариантов реализации, который предпочтительнее в каких-то случаях. Но не всегда.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38460990
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы чего, люди? Вью модель ничего не должна знать о окне! Это железобетонно.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38461301
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУВы чего, люди? Вью модель ничего не должна знать о окне! Это железобетонно.Ну тогда мучайся, тебя предупредили. Как тебе решение ? Оно тебе надо? :-)

А главное, не надо подписываться из View на события ViewModel, есть опасность утечки памяти, если время жизни ViewModel больше чем View. Например, если View является ControlTemplate/DataTemplate. Лучше смотри решение через жопу присоединяемое свойство.

А по сути, это модель ничего не знает о View в силу своих особенностей. Например, потому что модель живёт на сервере, а на клиенте WCF Proxy. Конечно, он ничего не должен знать про окно.

А ViewModel - это логика представления. Если ViewModel будет иметь ссылку на View, то единственный негативный эффект - к одному объекту ViewModel можно привязать только один объект View. Тем более, в твоём случае тебе View нужен в виде базового класса DependencyObject, чтобы передать его в Window.GetWindow для получения ссылки на окно. Тут особого знания ViewModel о View и не требуется. А теперь ответь себе на вопрос - тебе нужно несколько View к одной ViewModel? :-)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38461306
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУВы чего, люди? Вью модель ничего не должна знать о окне! Это железобетонно.
Ну, раз уж пошла такая пьянка (про pure MVVM), то ViewModel ничего не должна знать о Window как о классе, т.е. сборка с ViewModel не должна зависеть от WindowsBase, PresentationCore, etc. А открытие окна из модели нужно делать в сервисе путем дергания инжекта. Иначе ночью придет джошсмит, и расстреляет из реактивного говномета.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38461309
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей ККак тебе решение ?
Вот еще вариант
Код: c#
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.
43.
using System.Windows;
using System.Windows.Controls;
 
namespace WX.Classes.Attached
{
  public static class DialogResultHelper
  {
    public static readonly DependencyProperty ResultProperty =
      DependencyProperty.RegisterAttached(
        "Result", typeof(bool?), typeof(DialogResultHelper),
        new PropertyMetadata(false, OnResultPropertyChanged));
 
    public static bool? GetResult(DependencyObject o)
    {
      return (bool?)o.GetValue(ResultProperty);
    }
 
    public static void SetResult(DependencyObject o, bool? value)
    {
      o.SetValue(ResultProperty, value);
    }
 
    static void OnResultPropertyChanged(DependencyObject o,
        DependencyPropertyChangedEventArgs ea)
    {
      var btn = o as Button;
      if (btn == null) return;
      btn.Click -= HandleResult;
      if (ea.NewValue == null) return;
      btn.Click += HandleResult;
    }
 
    static void HandleResult(object sender, RoutedEventArgs ea)
    {
      var btn = sender as Button;
      if (btn == null || GetResult(btn) == null) return;
      var window = Window.GetWindow(btn);
      if (window == null) return;
      window.DialogResult = GetResult(btn);
      window.Close();
    }
  }
}


Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
<Window
  x:Class="wpftest2.Window1"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:Attached="clr-namespace:WX.Classes.Attached;assembly=WX.Classes"
  TextOptions.TextFormattingMode="Display"
  UseLayoutRounding="True">
 
  <Grid>
    <Button
      VerticalAlignment="Center"
      HorizontalAlignment="Center"
      Padding="10"
      Content="OkCancel"
      IsDefault="True"
      Attached:DialogResultHelper.Result="True"/>
  </Grid>
</Window>

...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38461311
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры ПавловныМСУВы чего, люди? Вью модель ничего не должна знать о окне! Это железобетонно.
Ну, раз уж пошла такая пьянка (про pure MVVM), то ViewModel ничего не должна знать о Window как о классе, т.е. сборка с ViewModel не должна зависеть от WindowsBase, PresentationCore, etc. А открытие окна из модели нужно делать в сервисе путем дергания инжекта. Иначе ночью придет джошсмит, и расстреляет из реактивного говномета.+1
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38461407
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КНу тогда мучайся, тебя предупредили.
А где мучение? У меня всё работает. Просто я спросил, красиво ли так делать и быть может есть более разумные способы решения. А прибивать к вьюмодели гвозди - это жесть.

Алексей ККак тебе решение ? Оно тебе надо? :-)
Жуть. Оно мне не надо. Задача решается намного проще - через отдельный сервис окон IWindowService, как я уже писал. На ICommand вешаем свой вьюмодельный RelayCommand, в котором через инверсию общаемся с IWindowService, который всё знает о окнах. Никаких проблем, всё линейно и красиво.

Алексей КА главное, не надо подписываться из View на события ViewModel, есть опасность утечки памяти, если время жизни ViewModel больше чем View. Например, если View является ControlTemplate/DataTemplate. Лучше смотри решение через жопу присоединяемое свойство.
В моём случае, который я обрисовал, где утечка памяти? У меня самый простой случай, без всяких присоединяемых свойств и прочей мути. Классическая инъекция зависимости в виде отдельного оконного слоя.

Алексей КА теперь ответь себе на вопрос - тебе нужно несколько View к одной ViewModel? :-)
1. У каждого окна своя вьюмодель.
2. Вьюмодель не имеет ссылки на окно.
3. Общение с окнами происходит через отдельный сервис окон.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38461413
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры ПавловныМСУВы чего, люди? Вью модель ничего не должна знать о окне! Это железобетонно.
Ну, раз уж пошла такая пьянка (про pure MVVM), то ViewModel ничего не должна знать о Window как о классе, т.е. сборка с ViewModel не должна зависеть от WindowsBase, PresentationCore, etc. А открытие окна из модели нужно делать в сервисе путем дергания инжекта. Иначе ночью придет джошсмит, и расстреляет из реактивного говномета.
Так ViewModel и так ничего не знает о Window классе, она общается с сервисом окон. А сервис окон знает о Window. ViewModel у меня не зависит от WindowsBase и PresentationCore. У меня всё именно так и работает.

Код: c#
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.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
public class EmployeesViewModel : INotifyPropertyChanged
{
    private IDataContext Context;
    private IWindowService Service;

    public EmployeesViewModel()
    {
        LastName = "3";

        Context = new DataContext(); // todo IoC resolve
        Service = new WindowService(); // todo IoC resolve
    }

    public IEnumerable<Employee> Employees
    {
        get
        {
            if (string.IsNullOrEmpty(LastName))
            {
                return Enumerable.Empty<Employee>();
            }

            return Context.GetEmployees().Where(d => d.LastName.Contains(LastName));
        }
    }

    private string _lastName;
    public string LastName
    {
        get
        {
            return _lastName;
        }
        set
        {
            _lastName = value;
            if (PropertyChanged != null)
            {
                PropertyChanged(this, new PropertyChangedEventArgs("LastName"));
            }
        }
    }

    public ICommand FindCommand
    {
        get
        {
            return new RelayCommand((action) =>
            {
                if (PropertyChanged != null)
                {
                    PropertyChanged(this, new PropertyChangedEventArgs("Employees"));
                }
            });
        }
    }

    public ICommand EmployeeSelectCommand
    {
        get
        {
            return new RelayCommand((action) =>
            {
                if (PropertyChanged != null && action != null)
                {                        
                    if (Service.OpenEmployeeDetailWindow(action as Employee))
                    {
                        PropertyChanged(this, new PropertyChangedEventArgs("Employees"));
                    }
                }
            });
        }
    }

    public event PropertyChangedEventHandler PropertyChanged;
}    
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38461425
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУЗадача решается намного проще - через отдельный сервис окон IWindowService, как я уже писал. На ICommand вешаем свой вьюмодельный RelayCommand, в котором через инверсию общаемся с IWindowService, который всё знает о окнах текущем окне .Этого может быть недостаточно.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38461429
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУВ моём случае, который я обрисовал, где утечка памяти?В твоём случае нет. Я про общий случай.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38461433
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КЭтого может быть недостаточно.
Примеры в студию, когда сервис окон курит в сторонке.

Алексей КВ твоём случае нет. Я про общий случай.
А зачем тогда меня пугаешь? :)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38461436
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУЗадача решается намного проще - через отдельный сервис окон IWindowService, как я уже писал. На ICommand вешаем свой вьюмодельный RelayCommand, в котором через инверсию общаемся с IWindowService, который всё знает о окнах текущем окне окнах

Application.Current.Windows
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38461440
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей КНу тогда мучайся, тебя предупредили.
А где мучение? У меня всё работает.Само собой работает. Но я про удобства.
МСУПросто я спросил, красиво ли так делать и быть может есть более разумные способы решения. А прибивать к вьюмодели гвозди - это жесть.Ещё ни разу не встречал разумного объяснения, в чём эта "жесть" заключается. Чего мне такого неприятного придётся пережить, если я назло всем сделаю ссылку от ViewModel к View? :-)

А меж тем, сам Микрософт такими ссылками балуется. Смотри метод Control.GetTemplateChild. Это самое оно.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38461444
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУМСУЗадача решается намного проще - через отдельный сервис окон IWindowService, как я уже писал. На ICommand вешаем свой вьюмодельный RelayCommand, в котором через инверсию общаемся с IWindowService, который всё знает о окнах текущем окне окнах

Application.Current.WindowsНу и какое из них привязано к "этой" ViewModel?
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38461448
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУА зачем тогда меня пугаешь? :)Чтоб не расслаблялся.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38461453
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КСамо собой работает. Но я про удобства.
Зачем мне подсовывать в виде "удобства" это ? Если у меня и так всё работает ? :)

Алексей КЕщё ни разу не встречал разумного объяснения, в чём эта "жесть" заключается.
Задайся вопросом, ради чего тогда нужна вьюмодель. Только не торопись с ответом.

Алексей КЧего мне такого неприятного придётся пережить, если я назло всем сделаю ссылку от ViewModel к View? :-)
Чего мне такого неприятного придётся пережить, если я логику буду писать в виде лапшекода из 10К строк в контроллере? :)

Алексей КА меж тем, сам Микрософт такими ссылками балуется. Смотри метод Control.GetTemplateChild. Это самое оно.
Так это же System.Windows.Controls. Или ты о чем?
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38461454
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КМСУпропущено...
Application.Current.WindowsНу и какое из них привязано к "этой" ViewModel?
Активное. Но я могу привязать любое, мне кто-то запрещает? Например, вязаться по имени.

Алексей КМСУА зачем тогда меня пугаешь? :)Чтоб не расслаблялся.
Ок :)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38461459
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей КЕщё ни разу не встречал разумного объяснения, в чём эта "жесть" заключается.
Задайся вопросом, ради чего тогда нужна вьюмодель. Только не торопись с ответом.Её можно наследовать, а UserControl - нет. Её можно повторно использовать с разными View, в отличие от code-behind. Для меня это основные причины для выделения фрагмента code-behind в отдельный класс.

МСУАлексей КЧего мне такого неприятного придётся пережить, если я назло всем сделаю ссылку от ViewModel к View? :-)
Чего мне такого неприятного придётся пережить, если я логику буду писать в виде лапшекода из 10К строк в контроллере? :)10К лапшекода можно настрочить в отдельном классе с не меньшим успехом.

МСУАлексей КА меж тем, сам Микрософт такими ссылками балуется. Смотри метод Control.GetTemplateChild. Это самое оно.
Так это же System.Windows.Controls. Или ты о чем?О нём самом. Класс-потомок Control - это ViewModel, ControlTemplate - это View. Как тебе такой подход? :-)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38461467
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей Кпропущено...
Ну и какое из них привязано к "этой" ViewModel?
Активное. Но я могу привязать любое, мне кто-то запрещает? Например, вязаться по имени .Здравствуй Prism с его RegionManager. Ну и накой эти педали? Не проще иметь ссылку на View?
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38461469
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КМСУпропущено...

Активное. Но я могу привязать любое, мне кто-то запрещает? Например, вязаться по имени .Здравствуй Prism с его RegionManager. Ну и накой эти педали? Не проще иметь ссылку на View?Там самое интересное начинается, когда в приложении появляется несколько регионов с одинаковым именем. Был тут такой вопрос на форуме....
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38461481
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КЕё можно наследовать, а UserControl - нет.
Мне это не нужно, я же говорил, что вью модель одна у окна. Во-вторых, она используется для разделения модели и её представления, что необходимо для изменения их по-отдельности. Например, разработчик задает логику работы с данными, а дизайнер соответственно работает с пользовательским интерфейсом. Рефакторить и довинчивать функционал к такой архитектуре - одно удовольствие. Что-то похожее с asp.net mvc представлением cshtml.

Алексей КЕё можно повторно использовать с разными View, в отличие от code-behind.
Нахрен не нужно, уже ответил.

Алексей КДля меня это основные причины для выделения фрагмента code-behind в отдельный класс.
Причины высосаны из пальца и просто унылы, извини... :)

Алексей К10К лапшекода можно настрочить в отдельном классе с не меньшим успехом.
О чем я и говорю, поэтому смысл писать про "можно ли это пережить". Пережить можно даже ассемблерные вставки в дельфи коде :)

Алексей КО нём самом. Класс-потомок Control - это ViewModel, ControlTemplate - это View. Как тебе такой подход? :-)
С каких красот Control это ViewModel? :)

Алексей КЗдравствуй Prism с его RegionManager. Ну и накой эти педали? Не проще иметь ссылку на View?
Ну мне это не нужно, у меня маппинг окна в оконном сервисе происходит по активности. Этого достаточно же.

Алексей КТам самое интересное начинается, когда в приложении появляется несколько регионов с одинаковым именем. Был тут такой вопрос на форуме....
Организуй демку, а то не понятно. Пожуём, пощупаем :)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38461498
netivan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

а вот интересно твой "оконный сервис" как поможет в задаче получить значения какого-то свой-ва View? Не окна, а какого-то контрола в окне? Например, это может быть связано с пересчетом координат и тут VM вряд ли поможет :)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38461507
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей КЕё можно наследовать, а UserControl - нет.
Мне это не нужноЭто пока. Потом захочется иметь типовой функционал, например, для форм редактирования.

МСУВо-вторых, она используется для разделения модели и её представления, что необходимо для изменения их по-отдельности. Например, разработчик задает логику работы с данными, а дизайнер соответственно работает с пользовательским интерфейсом. Рефакторить и довинчивать функционал к такой архитектуре - одно удовольствие. Что-то похожее с asp.net mvc представлением cshtml.Но это же банально. Я просто об этом не говорю. :-)

МСУАлексей КЕё можно повторно использовать с разными View, в отличие от code-behind.
Нахрен не нужно, уже ответил.У тебя всё ещё впереди, если собрался плотно этим заниматься. :-)

МСУАлексей КДля меня это основные причины для выделения фрагмента code-behind в отдельный класс.
Причины высосаны из пальца и просто унылы, извини... :)Время нас рассудит. :-)

МСУАлексей КО нём самом. Класс-потомок Control - это ViewModel, ControlTemplate - это View. Как тебе такой подход? :-)
С каких красот Control это ViewModel? :)В контексте отдельного элемента управления - именно так. Но это моё эксклюзивное видение ситуации. Такого ты больше нигде не встретишь. :-)

МСУАлексей КЗдравствуй Prism с его RegionManager. Ну и накой эти педали? Не проще иметь ссылку на View?
Ну мне это не нужно, у меня маппинг окна в оконном сервисе происходит по активности. Этого достаточно же.Сегодня не нужно, завтра потребуется. Но дело твоё, уговаривать не собираюсь. :-)

МСУАлексей КТам самое интересное начинается, когда в приложении появляется несколько регионов с одинаковым именем. Был тут такой вопрос на форуме....
Организуй демку, а то не понятно. Пожуём, пощупаем :)Я как раз сейчас заканчиваю работу над "фреймворк" + "демка" + "мануал" для нашего внутреннего использования. Высока вероятность её публикации в Интернете. Там всё будет. :-)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38461509
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netivanМСУ, а вот интересно твой "оконный сервис" как поможет в задаче получить значения какого-то свой-ва View? Не окна, а какого-то контрола в окне? Например, это может быть связано с пересчетом координат и тут VM вряд ли поможет :)
netivan, не гоже такие ламерские вопросы задавать мне, не впф-нику... :)
Получить значения какого-то свой-ва View поможет вьюмодель, которая привязана к датаконтексту. Вьюмодель общается через IoC с оконным сервисом, поэтому это значение смело уйдёт в него и помашет ручкой.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38461530
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КЭто пока. Потом захочется иметь типовой функционал, например, для форм редактирования.
Я решаю проблемы по мере их поступления :)

Алексей КНо это же банально. Я просто об этом не говорю. :-)
...[image=http://file.mobilmusic.ru/fc/ab/e2/975487-220.jpg]


Алексей КУ тебя всё ещё впереди, если собрался плотно этим заниматься. :-)
В вебе каждая страница была своя, никаких наследований и прочей ерунды. Наследование было на уровне модели представления и только. Проблем никаких. Так на кой оно мне в xaml нужно? :)

Алексей КВремя нас рассудит. :-)
Я забыл о "наследовании форм" еще со времен дельфи кодирования... Наследование в виде базового класса для модели - это как пить дать. Но наследование гуя... в топку. Ты просто обязан со мной согласиться. Потому что я чую, что ты нихрена не пользуешься наследованием UI. Ну признайся честно? Ну пецдишь веть

МСУпропущено...

С каких красот Control это ViewModel? :)В контексте отдельного элемента управления - именно так. Но это моё эксклюзивное видение ситуации. Такого ты больше нигде не встретишь. :-)

Алексей КСегодня не нужно, завтра потребуется. Но дело твоё, уговаривать не собираюсь. :-)
Вот я и спросил про эти ситуации, может ли моя "активность окна" выйти боком. А ты накинулся пугать какими-то аттачед пропертями, учетками и прочими гадостями. Просто я пока не могу придумать кейс, в котором моя активность окна положит архитектуру на лопатки... Вообщем, тебе задача - придумать такой кейс, чтобы я спал спокойно - исходники демки прилагаю. И не противься, просто сделай вещи :)

Алексей КЯ как раз сейчас заканчиваю работу над "фреймворк" + "демка" + "мануал" для нашего внутреннего использования. Высока вероятность её публикации в Интернете. Там всё будет. :-)
Ну там будет много лохмотьев, которые мне пока не нужны и только замусолят мне моск. Я хочу конкретного ответа по конкретному узкому вопросу :)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38461533
netivan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

т.е. VM скажет твоему сервису найди мою View по моему Ctx в этом окне? Кстати,а если окно WinForm?
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38461546
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netivanМСУ, т.е. VM скажет твоему сервису найди мою View по моему Ctx в этом окне?
Я же всё объяснил кодом 15113285

netivanКстати,а если окно WinForm?
Какая разница. VM вообще ничего не знает о том, WPF это или WinForms.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38461553
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей КУ тебя всё ещё впереди, если собрался плотно этим заниматься. :-)
В вебе каждая страница была своя, никаких наследований и прочей ерунды. Наследование было на уровне модели представления и только. Проблем никаких. Так на кой оно мне в xaml нужно? :)
МСУАлексей КВремя нас рассудит. :-)
Я забыл о "наследовании форм" еще со времен дельфи кодирования... Наследование в виде базового класса для модели - это как пить дать. Но наследование гуя... в топку. Ты просто обязан со мной согласиться. Потому что я чую, что ты нихрена не пользуешься наследованием UI. Ну признайся честно? Ну пецдишь веть Я говорю как раз о наследовании [View]Model. Про наследование View я не говорил. Ты запутался. :-)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38461557
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУКакая разница. VM вообще ничего не знает о том, WPF это или WinForms.Оптимист.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38461559
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КЯ говорю как раз о наследовании [View]Model. Про наследование View я не говорил. Ты запутался. :-)
Бать, так а какая проблема отнаследоваться от вьюмодели?
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38461563
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей КСегодня не нужно, завтра потребуется. Но дело твоё, уговаривать не собираюсь. :-)
Вот я и спросил про эти ситуации, может ли моя "активность окна" выйти боком. А ты накинулся пугать какими-то аттачед пропертями, учетками и прочими гадостями. Просто я пока не могу придумать кейс, в котором моя активность окна положит архитектуру на лопатки... Вообщем, тебе задача - придумать такой кейс, чтобы я спал спокойно - исходники демки прилагаю. И не противься, просто сделай вещи :)Ну ладно, если что придумаю - отпишу. :-)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38461566
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КМСУКакая разница. VM вообще ничего не знает о том, WPF это или WinForms.Оптимист.
Ну какие-то сложные околожопные сценарии (коих 1%) можно и прибить, фиг с тобой - я за рационализм, а не фанатизм :)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38461571
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей КЯ говорю как раз о наследовании [View]Model. Про наследование View я не говорил. Ты запутался. :-)
Бать, так а какая проблема отнаследоваться от вьюмодели?Ну если ViewModel совмещён с code-behind. Потому и говорю, что это одна из причин выноса кода из code-behind в отдельный класс.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38461572
Фотография EDUARD SAPOTSKI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ, ты там че, нашел очередного "прошаренного" заказчика, которому "прошаренные" спецы сказали что без клизмы призмы никуда? Выкинь это поделие на помойку и не вспоминай, кроме тучи лишнего кода, глюков и тормозов никакого профита не получишь.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38461576
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КНу если ViewModel совмещён с code-behind. Потому и говорю, что это одна из причин выноса кода из code-behind в отдельный класс.
Не хитри :) Я имел ввиду то, что нужно совмещать ViewModel с коде бехайндом только в тех сложных сценариях. А не наоборот, сначала совмещаем всё, а потом разносим по мере возможности. в 99% случаев у тебя будет чистый код бехайнд и четкая вью модель, в 1% случаев у тебя будет околожопщина в виде засранного код бехайнда и четкой вьюмодели :)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38461580
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Эдик, дружище, почему твои метания какашками не подкреплены законами физики? Быстро исправляйся!
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38461583
Фотография EDUARD SAPOTSKI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУЭдик, дружище, почему твои метания какашками не подкреплены законами физики? Быстро исправляйся!
Да че там исправляться, уверен на все сто, что задачу которую решаешь можно решить на порядок проще без выноса мозга. Кстати не поведаешь суть, что в итоге получить хош?
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38461585
Фотография Шайтан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EDUARD SAPOTSKI......спецы сказали что без клизмы призм ы никуда? Выкинь это поделие на помойку и не вспоминай, кроме тучи лишнего кода, глюков и тормозов никакого профита не получишь.Кстате, а где Seva?
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38461592
Фотография EDUARD SAPOTSKI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ШайтанКстате, а где Seva?
Если МСУ на WPF, то Сева видать на ASP.NET сейчас шабашит
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38461602
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EDUARD SAPOTSKIДа че там исправляться, уверен на все сто, что задачу которую решаешь можно решить на порядок проще без выноса мозга.
Указ свыше, MVVM - и ниибёт :)

EDUARD SAPOTSKIКстати не поведаешь суть, что в итоге получить хош?
В конечном итоге приложение , которое будет хостится и рендериться ядром win8. В отвязке от SL и WPF. Промежуточный временный вариант пока - это SL аппликуха. Софтина для ритейла, обычное корпоративное расширение функионала, проинтегрированное с сапом, аксаптой, ms crm и прочими танцами с бубнами.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38461608
Фотография EDUARD SAPOTSKI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУУказ свыше, MVVM - и ниибёт :)
Понятно, сочувствую.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38461614
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EDUARD SAPOTSKIПонятно, сочувствую.
Да ну брось :) Замечательный подход для 99% случаев. Пойди в асповый форум и спроси, хотят ли мвц-шники вернуться к вебформс подходам. Камнями закидают.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38461616
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EDUARD SAPOTSKIПонятно, сочувствую.
Да ладно. Вот если бы было "Дельфи с ассемблерными вставками, и ниипет" - тогда можно было бы сочувствовать. А так - очень даже ничего.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38461624
netivan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

покажи код своего window service, или тайна?:) вдруг пригодится)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38461629
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netivanМСУ, покажи код своего window service, или тайна?:) вдруг пригодится)
Ты каким местом топик читаешь? Я даже исходники выложил ))
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38461688
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КПроще для формы редактирования запросить с сервера свою копию записи, или клонировать текущую из грида. При применении в форме заменить текущую запись в гриде на запись из формы редактирования.
Кстати, минус такого подхода: чтобы обновить эту запись в гриде, нужно обновлять (PropertyChangedEventArgs) весь грид. Есть рецепты?
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38461764
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУВ конечном итоге приложение , которое будет хостится и рендериться ядром win8. В отвязке от SL и WPF. Промежуточный временный вариант пока - это SL аппликуха. Софтина для ритейла, обычное корпоративное расширение функионала, проинтегрированное с сапом, аксаптой, ms crm и прочими танцами с бубнами.Чё сразу не сказал, что архитектура требует независимости от гуйной библиотеки? Хотел до последнего сохранить интригу?
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38461768
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУПромежуточный временный вариант пока - это SL аппликуха.

Я что - один в шоке???
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38461775
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КХотел до последнего сохранить интригу?
Это конечный вариант, поэтому о нём пока можно умолчать и не пугать публику

MonochromatiqueЯ что - один в шоке???
Промежуточный вариант. Времянка же :)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38461789
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Друзья, ну так чё, какую педаль мне нужно вкорячить сюда, что бы изменилась только текущая запись? Вызов PropertyChangedEventArgs("Employees") перезапросит всю коллецию заново, что его зло и похабность...

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
public ICommand EmployeeSelectCommand
{
    get
    {
        return new RelayCommand((action) =>
        {
            if (PropertyChanged != null && action != null)
            {
                if (Service.OpenEmployeeDetailWindow(action as Employee))
                {
                    PropertyChanged(this, new PropertyChangedEventArgs("Employees"));
                }
            }
        });
    }
}



Почему в WPF всё так через жопу? :)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38461791
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУчто есть зло и похабность
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38461795
netivan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

ну я тоже обновлял весь грид. Возможно если тип коллекции сам наследует INotify.... , то может быть тогда "само" сработает?
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38461816
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netivanну я тоже обновлял весь грид.
Ну плохо, что тут сказать.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38461837
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУnetivanну я тоже обновлял весь грид.
Ну плохо, что тут сказать.

Ага, а в МВЦ "из коробки" записи обновляются. ))

MVVM есть MVVM - есть отображение, есть вьюмодель, есть модель. Если строка датагрида выделена в объект как представлен вьюмоделью, то значит вьюмодель должны послать сообщение, что она изменилась, а вьюха её отобразит соответственно.

Чо тут выдумывать??
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38461847
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MonochromatiqueАга, а в МВЦ "из коробки" записи обновляются. ))
Я в декларативном представлении, которое отвязано от серверной модели, пишу js код, который красиво асинхронно обновляет конкретную запись в таблице. Без пересасывания всего набора. Делов на 1 минуту с перекуром. Оптимально, быстро, четко. Где это в WPF? )

MonochromatiqueЧо тут выдумывать??
Есть конкретная задача, я её обозначил. Она реальна и не высосана из пальца. Мне нужно решение, а не упоротое объяснение того, что моя задача УГ или того, что нужно просто забить на неё, потому что "и я так делаю". Мысль понятна? :)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38461853
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУДрузья, ну так чё, какую педаль мне нужно вкорячить сюда, что бы изменилась только текущая запись? Вызов PropertyChangedEventArgs("Employees") перезапросит всю коллецию заново, что его зло и похабность...

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
public ICommand EmployeeSelectCommand
{
    get
    {
        return new RelayCommand((action) =>
        {
            if (PropertyChanged != null && action != null)
            {
                if (Service.OpenEmployeeDetailWindow(action as Employee))
                {
                    PropertyChanged(this, new PropertyChangedEventArgs("Employees"));
                }
            }
        });
    }
}



Почему в WPF всё так через жопу? :)Так, отставить панику! Не понял, где тут ObservableCollection<Employee>? В ней и заменяй одну запись. Или я не понял структуры момента?
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38461863
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КТак, отставить панику!
Ок

Алексей КНе понял, где тут ObservableCollection<Employee>? В ней и заменяй одну запись. Или я не понял структуры момента?
Оно мне никак не поможет, у меня же отвязанная сущность. Мы же раньше её отвязали через клонирование, чтобы оно после закрытия формы редактирования не обновлялось в гриде. Забыл?
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38461874
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУВ конечном итоге приложение , которое будет хостится и рендериться ядром win8. В отвязке от SL и WPF. Промежуточный временный вариант пока - это SL аппликуха. Софтина для ритейла, обычное корпоративное расширение функионала, проинтегрированное с сапом, аксаптой, ms crm и прочими танцами с бубнами.Попутно вопрос, что мешает хранить ссылку на View в виде object , а приводить к конкретному типу внутри конкретного оконного сервиса?
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
class MyViewModel
{
    IWindowService WindowService = ...

    public object View { get; set; }

    void DoSomething()
    {
        // ....

        WindowService.CloseWindow(View);
    }
}
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38461892
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КПопутно вопрос, что мешает хранить ссылку на View в виде object , а приводить к конкретному типу внутри конкретного оконного сервиса?
Зачем эти костыли? Во-вторых, с этим проблем нет, давай не будет отвлекаться :)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38461896
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей КНе понял, где тут ObservableCollection<Employee>? В ней и заменяй одну запись. Или я не понял структуры момента?
Оно мне никак не поможет, у меня же отвязанная сущность. Мы же раньше её отвязали через клонирование, чтобы оно после закрытия формы редактирования не обновлялось в гриде. Забыл?А некуй было отвязывать.

Это всё должно производиться в одном классе, имеющем ссылку как на сам список, так и на редактируемую запись. А не инкапсулировать логику во ВьюМодель редактируемой записи, как ты сделал.

И вообще, некуй смешивать логику и данные, от этого одни проблемы.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38461917
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КА некуй было отвязывать.
Сам же посоветовал :)

Алексей КЭто всё должно производиться в одном классе, имеющем ссылку как на сам список, так и на редактируемую запись. А не инкапсулировать логику во ВьюМодель редактируемой записи, как ты сделал.
Тема "окно как ссылка" вообще не относится к данной проблеме. Я его поднимаю в оконном сервисе, доступном во вью модели. Всё хорошо. Ты запутался :)

Алексей КИ вообще, некуй смешивать логику и данные, от этого одни проблемы.
Вот с этого момента поподробнее

P.S. Я дал исходники - напиши "правильно" и выложи )
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38461919
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ, смотри, моя реализация формы редактирования. Постю как есть:
Детям и беременным не открывать!
Код: c#
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.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Input;
 
namespace SspMain
{
    public abstract class UiEditableCollection2<TListItem, TEditItem, TKey> : UiEditableCollectionBase<TListItem>
        where TListItem : class
        where TEditItem : class
    {
        #region SingleRowID Property
 
        public static readonly DependencyProperty SingleRowIDProperty =
            DependencyProperty.Register(
                "SingleRowID",
                typeof(object),
                typeof(UiEditableCollection2<TListItem, TEditItem, TKey>),
                new FrameworkPropertyMetadata((s, e) => ((UiEditableCollection2<TListItem, TEditItem, TKey>)s).SingleRowIDChanged(e))
            );
 
        public object SingleRowID
        {
            get { return (object)GetValue(SingleRowIDProperty); }
            set { SetValue(SingleRowIDProperty, value); }
        }
 
        void SingleRowIDChanged(DependencyPropertyChangedEventArgs e)
        {
            CommandManager.InvalidateRequerySuggested();
        }
 
        #endregion
 
        #region Add / Edit
 
        protected abstract FrameworkElement GetEditor();
 
        protected override void ActAddExecute()
        {
            GetNewEditItem()
                .LockUi()
                .ContinueWithSync(t =>
                {
                    var data = new EditorData<TEditItem> { Mode = UpdateAction.Insert, Data = t.Result };
                    var editor = GetEditor();
                    editor.DataContext = data;
                    ViewHelper.SetHeader(editor, "Новая запись");
                    WindowHelper.ShowAcceptDialog(editor, () => EditorAccepting(data));
                })
                .LogExceptions();
        }
 
        protected override bool ActAddCanExecute()
        {
            return base.ActAddCanExecute() && SingleRowID == null;
        }
 
        protected override void ActEditExecute()
        {
            GetEditItemByID(GetListItemID(Current))
                .LockUi()
                .ContinueWithSync(t =>
                {
                    var data = new EditorData<TEditItem> { Mode = UpdateAction.Update, Data = t.Result };
                    var editor = GetEditor();
                    editor.DataContext = data;
                    ViewHelper.SetHeader(editor, "Редактирование");
                    WindowHelper.ShowAcceptDialog(editor, () => EditorAccepting(data));
                })
                .LogExceptions();
        }
 
        protected virtual Task<bool> EditorAccepting(EditorData<TEditItem> data)
        {
            return SaveEditItem(data.Data, data.Mode)
                .ContinueWithSync(t => GetListItemByID(t.Result))
                .Unwrap()
                .ContinueWithSync(t =>
                {
                    AddOrReplace(t.Result, data.Mode);
                    OnDataChangeCompleted();
                    return true;
                });
        }
 
        #endregion
 
        #region Delete
 
        protected override void ActDeleteExecute()
        {
            if (CommonDialogs.AskForDeleteRow())
                DeleteByID(GetListItemID(Current))
                    .LockUi()
                    .ContinueWithSync(t =>
                    {
                        t.ThrowIfException();
                        RemoveCurrent();
                        OnDataChangeCompleted();
                    })
                    .LogExceptions();
        }
 
        #endregion
 
        #region RefreshCurrentItem
 
        #region ActRefreshCurrentItem
 
        public RelayCommand ActRefreshCurrentItem
        {
            get
            {
                if (_ActRefreshCurrentItem == null)
                    _ActRefreshCurrentItem = new RelayCommand(ActRefreshCurrentItemExecute, ActRefreshCurrentItemCanExecute);
                return _ActRefreshCurrentItem;
            }
        }
        RelayCommand _ActRefreshCurrentItem;
 
        void ActRefreshCurrentItemExecute()
        {
            RefreshCurrentItem()
                .LockUi()
                .LogExceptions();
        }
 
        bool ActRefreshCurrentItemCanExecute()
        {
            return HasItems;
        }
 
        #endregion
 
        public Task RefreshCurrentItem()
        {
            return GetListItemByID(GetListItemID(Current))
                .ContinueWithSync(t => ReplaceCurrent(t.Result));
        }
 
        #endregion
 
        #region Storage Actions
 
        protected abstract TKey GetListItemID(TListItem item);
        protected abstract Task<TEditItem> GetNewEditItem();
        protected abstract Task<TEditItem> GetEditItemByID(TKey id);
        protected abstract Task<TListItem> GetListItemByID(TKey id);
        protected abstract Task<TKey> SaveEditItem(TEditItem editItem, UpdateAction action);
        protected abstract Task DeleteByID(TKey id);
 
        #endregion
    }
}

...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38461929
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУP.S. Я дал исходники - напиши "правильно" и выложи )Ща гляну.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38461947
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КМСУP.S. Я дал исходники - напиши "правильно" и выложи )Ща гляну.У меня VS2010, так что извиняй. :-)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38461956
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КМСУ, смотри, моя реализация формы редактирования
Какая-то жопа... Зачем так сложно и мутно?

И кстати, вспомнил, почему нужно дублировать поля во вьюмодели :)

Алексей КМСУ// Пачка дублирующего уныния, вместо пряморукого объекта Employee :(
public int EmployeeId { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }

Я бы не стал без необходимости дублировать поля модели во вьюмодели.
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
class Employee
{
    public int EmployeeId { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
}

class EmployeeViewModel
{
    public Employee Model { get; set; }
}



Валидацию ты как собираешься делать? У меня вьюмодель реализует IDataErrorInfo, я пробегаю по свойствам и смотрю их изменения. По факту всё упирается в проверу:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
public class WindowService : IWindowService
{
    public Window ActiveWindow { get { return Application.Current.Windows.OfType<Window>().SingleOrDefault(x => x.IsActive); } }

    private bool Validate(DependencyObject instance)
    {
        return !Validation.GetHasError(instance) && LogicalTreeHelper.GetChildren(instance).OfType<DependencyObject>().All(child => Validate(child));
    }

    public bool IsValid { get { return Validate(ActiveWindow); } }
}



Вью модель:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
public ICommand SaveCommand
{
    get
    {
        return new RelayCommand((action) =>
        {
            if (Service.IsValid)
            {
                var vm = action as EmployeeViewModel;
                Context.UpdateEmployee(vm.EmployeeId, vm.FirstName, vm.LastName);
                Service.CloseActiveWindow(true);
            }
        });
    }
}
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38461960
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КУ меня VS2010, так что извиняй. :-)
Перекинуть ручками парочку файликов не судьба? Отмаз не принят, работай :)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38461973
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей КМСУ, смотри, моя реализация формы редактирования
Какая-то жопа... Зачем так сложно и мутно?Там в основном громозкие описания DependencyProperty + поддержка асинхронности. А там, там логики хрен да маленько.

МСУВалидацию ты как собираешься делать? У меня вьюмодель реализует IDataErrorInfo, я пробегаю по свойствам и смотрю их изменения. По факту всё упирается в проверу:У меня стойкое убеждение, что валидацию надо делать во View. Как раз для того, чтобы не дублировать свойства модели во вьюмодели.

В WPF DataBinding для этого есть все возможности. В SL вроде как оно тоже есть. А вот в WinRT этого не было, когда я на него в прошлый раз смотрел. Может что и поменялось. Ты если собрался под него писать - уточни этот вопрос.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38461987
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей КУ меня VS2010, так что извиняй. :-)
Перекинуть ручками парочку файликов не судьба? Отмаз не принят, работай :)Это чё?Error 1 The type or namespace name 'Caching' does not exist in the namespace 'System.Runtime' (are you missing an assembly reference?) c:\users\user\documents\visual studio 2010\Projects\WpfApplication3\WpfApplication3\Core\DataContext.cs 4 22 WpfApplication3У меня .Net4, оно там есть?

Логику управления списком после редактирования я бы разместил в EmployeesViewModel. Вероятно, SaveCommand надо туда перенести. Кароче, лень мне сейчас с нуля всё переписывать. :-)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38461988
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КТам в основном громозкие описания DependencyProperty + поддержка асинхронности. А там, там логики хрен да маленько.
Ну и на кой мне эти сопли с утечками памяти?

Алексей КУ меня стойкое убеждение, что валидацию надо делать во View. Как раз для того, чтобы не дублировать свойства модели во вьюмодели.
Так есть же IDataErrorInfo. Какое вью? )

Алексей КВ WPF DataBinding для этого есть все возможности. В SL вроде как оно тоже есть. А вот в WinRT этого не было, когда я на него в прошлый раз смотрел. Может что и поменялось. Ты если собрался под него писать - уточни этот вопрос.
Ок.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38462004
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КУ меня .Net4, оно там есть?
Да, мемори кеш доступна с 4 фреймворка.
http://msdn.microsoft.com/ru-ru/library/system.runtime.caching.memorycache(v=vs.110).aspx

Алексей КЛогику управления списком после редактирования я бы разместил в EmployeesViewModel. Вероятно, SaveCommand надо туда перенести. Кароче, лень мне сейчас с нуля всё переписывать. :-)
Так и знал... :)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38462018
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей КТам в основном громозкие описания DependencyProperty + поддержка асинхронности. А там, там логики хрен да маленько.
Ну и на кой мне эти сопли с утечками памяти? Параноик.

Ты на логику смотри в ActAddExecute, ActEditExecute и EditorAccepting.

зы: Там к ActAddExecute и ActEditExecute привязаны RelayCommand в базовом классе.

МСУАлексей КУ меня стойкое убеждение, что валидацию надо делать во View. Как раз для того, чтобы не дублировать свойства модели во вьюмодели.
Так есть же IDataErrorInfo. Какое вью? )Говорю же, мне не нравится обёртывать model в лишний слой ради валидации. А дублировать свойства мне не нравится ещё больше. Но это кому как больше нравится. :-)

зы: Ты это, про асинхронности тоже не забывай. В SL и WinRT запросы к серверу только асинхронные.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38462019
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей ККароче, лень мне сейчас с нуля всё переписывать. :-)
Держи под десятую студию :)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38462028
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей ККароче, лень мне сейчас с нуля всё переписывать. :-)
Держи под десятую студию :)Скачал.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38462031
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КСкачал.
Там уже код с твоим ObservableCollection, но делу это не помогает. Задача - не рефрешить целый грид, а рефрешить только текущую запись. Как её решить, я хз...
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38462059
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так?
Код: c#
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.
public ICommand EmployeeSelectCommand
        {
            get
            {
                return new RelayCommand((action) =>
                {
                    if (PropertyChanged != null && action != null)
                    {
                        var employee = action as Employee;

                        // как-то клонирование надо замутить.
                        // XmlSerializer в помощь. :-)
                        var employee2 = Clone(employee);

                        if (Service.OpenEmployeeDetailWindow(employee2))
                        {
                            var i = Employees.IndexOf(employee);
                            Employees[i] = employee2;

                            // PropertyChanged(this, new PropertyChangedEventArgs("Employees"));
                        }
                    }
                });
            }
        }
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38462067
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КТак?
Код: c#
1.
2.
3.
4.
5.
// как-то клонирование надо замутить.
// XmlSerializer в помощь. :-)
var employee2 = Clone(employee);

if (Service.OpenEmployeeDetailWindow(employee2))



Не понял, так в OpenEmployeeDetailWindow уже реализовано "клонирование". Двойное клонирование?
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38462092
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей КТак?
Код: c#
1.
2.
3.
4.
5.
// как-то клонирование надо замутить.
// XmlSerializer в помощь. :-)
var employee2 = Clone(employee);

if (Service.OpenEmployeeDetailWindow(employee2))



Не понял, так в OpenEmployeeDetailWindow уже реализовано "клонирование". Двойное клонирование?Ага, не увидел, тогда надо оттуда как-то вернуть "клона".
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38462136
netivan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
интересно то, что в половину случаев проблемы возникают из-за отсутствия tracking object во VM. Тут надо свой велосипед сооружать. Мой в процессе..и тогда мы заживем.
ЗЫ кстати идею можно сп дить у EF DataContext.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38462230
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netivanМой в процессе...А мой в планах, которые уже где-то около года откладываются.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38462274
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КАга, не увидел, тогда надо оттуда как-то вернуть "клона".
Так обращение к Employees перезапросит с БД новые экземпляры.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38462360
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К, даже так не работает...

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
public ICommand EmployeeSelectCommand
{
    get
    {
        return new RelayCommand((action) =>
        {
            if (PropertyChanged != null)
            {
                var employee = action as Employee;
                employee.FirstName = "123";
            }
        });
    }
}
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38462379
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей К, даже так не работает...

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
public ICommand EmployeeSelectCommand
{
    get
    {
        return new RelayCommand((action) =>
        {
            if (PropertyChanged != null)
            {
                var employee = action as Employee;
                employee.FirstName = "123";
            }
        });
    }
}

Там вроде как реализации INotifyPropertyChanged в свойствах нету.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38462386
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей КАга, не увидел, тогда надо оттуда как-то вернуть "клона".
Так обращение к Employees перезапросит с БД новые экземпляры.А не надо обращение к базе делать в геттере свойства. Или надо научиться жить с этим. :-)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38462417
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУТак обращение к Employees перезапросит с БД новые экземпляры.Честно говоря, я сразу не обратил внимания на это необычное решение. Теперь понятно, почему у меня твой пример так и не заработал.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38462420
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КТам вроде как реализации INotifyPropertyChanged в свойствах нету.
Блин. Точно, спасибо :)

...EmployeesViewModel
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
public ICommand EmployeeSelectCommand
{
    get
    {
        return new RelayCommand((action) =>
        {
            if (PropertyChanged != null)
            {
                var employee = action as Employee;

                if (employee != null)
                {
                    var result = Service.OpenEmployeeDetailWindow(employee);
                    if (result != null)
                    {
                        employee.FirstName = result.FirstName;
                        employee.LastName = result.LastName;
                    }
                }
            }
        });
    }
}




IWindowService
Код: c#
1.
2.
3.
4.
5.
6.
public interface IWindowService
{
    EmployeeViewModel OpenEmployeeDetailWindow(Employee employee);
    void CloseActiveWindow(bool dialogResult);
    bool IsValid { get; }
}



Алексей КА не надо обращение к базе делать в геттере свойства. Или надо научиться жить с этим. :-)
Обращение идет к сервису. Во-вторых, в этом случае вью модель натравливается на вью через локатор. Плохо?

Код: xml
1.
<Window DataContext="{Binding EmployeesViewModel, Source={StaticResource ViewModelLocator}}" ...
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38462421
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КЧестно говоря, я сразу не обратил внимания на это необычное решение. Теперь понятно, почему у меня твой пример так и не заработал.
ViewModelLocator необычное решение? :)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38462426
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУОбращение идет к сервису. Во-вторых, в этом случае вью модель натравливается на вью через локатор. Плохо?Там плохо то, что при каждом обращении к свойству Employees возвращается новый экземпляр коллекции. В итоге, контролы прибиндены к одному объекту, а логика во вьюмодели работает с другим.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38462435
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей КЧестно говоря, я сразу не обратил внимания на это необычное решение. Теперь понятно, почему у меня твой пример так и не заработал.
ViewModelLocator необычное решение? :)Да вроде нормальное. Но я не использую DI, мне оно ни к чему. :-)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38462439
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КТам плохо то, что при каждом обращении к свойству Employees возвращается новый экземпляр коллекции. В итоге, контролы прибиндены к одному объекту, а логика во вьюмодели работает с другим.
Так у нас же клонирование. Какая уже разница, объект так и так похерен. Моя ошибка была изначально в том, что я Employee к INotifyPropertyChanged не прибил.

Алексей КДа вроде нормальное. Но я не использую DI, мне оно ни к чему. :-)
Удобно же. Не?
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38462443
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И самое главное, не нужно этот унылый ObservableCollection использовать :)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38462445
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей КТам плохо то, что при каждом обращении к свойству Employees возвращается новый экземпляр коллекции. В итоге, контролы прибиндены к одному объекту, а логика во вьюмодели работает с другим.
Так у нас же клонирование. Какая уже разница, объект так и так похерен. Моя ошибка была изначально в том, что я Employee к INotifyPropertyChanged не прибил.Да не. Я про коллекцию ObservableCollection<Employee>, к которой прибинден DataGrid, которую я хочу менять из вьюмодел но не могу.

МСУАлексей КДа вроде нормальное. Но я не использую DI, мне оно ни к чему. :-)
Удобно же. Не?DI на любителя. Я не один из них. :-)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38462448
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУИ самое главное, не нужно этот унылый ObservableCollection использовать :)Ну решай сам, дело твоё. :-)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38462458
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КНу решай сам, дело твоё. :-)
Так работает без него :) И говорят, он вроде как тормозной.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38462465
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей КНу решай сам, дело твоё. :-)
Так работает без него :) И говорят, он вроде как тормозной.По сравнению с тормозами при создании визуального дерева это мелочи. Да и чему там тормозить... Жжошь?
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38462467
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КДа и чему там тормозить... Жжошь?
Та не, просто аккуратно вбросил :)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38462469
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей КДа и чему там тормозить... Жжошь?
Та не, просто аккуратно вбросил :)Одобряю.:-)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38462471
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КОдобряю.:-)
В любом случае, как-то тухловато с этим скрипучим замлом... То ли дело разором пройтись по степям
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38462476
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей КОдобряю.:-)
В любом случае, как-то тухловато с этим скрипучим замлом... То ли дело разором пройтись по степям Веб не нужен. "Говорят, он вроде как тормозной" (ц)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38462704
gpu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей КНу решай сам, дело твоё. :-)
Так работает без него :) И говорят, он вроде как тормозной.
Так сделай Custom или используй 3´d party
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38463005
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КВеб не нужен. "Говорят, он вроде как тормозной" (ц)
Веб наше всё, пусть даже он будет с подпорками и тормозами :)

gpuТак сделай Custom или используй 3´d party
Зачем?
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38463024
netivan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КnetivanМой в процессе...А мой в планах, которые уже где-то около года откладываются.
ну ниче, я с вами поделюсь. может совет дадите умный. Но планы у меня тоже все откладываются, но скоро без этого с ума сойти можно ))
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38463048
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netivanАлексей Кпропущено...
А мой в планах, которые уже где-то около года откладываются.
ну ниче, я с вами поделюсь. может совет дадите умный. Но планы у меня тоже все откладываются, но скоро без этого с ума сойти можно ))А чего там умного? Берём за основу EditableList из BLToolkit, наследуемся от ObservableCollection и делаем как больше нравится. :-)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38463049
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей КВеб не нужен. "Говорят, он вроде как тормозной" (ц)
Веб наше всё, пусть даже он будет с подпорками и тормозами :)Отчаялся освоить WPF? Слабак!
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38463054
netivan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К,

да а почему именно List? Это все лишь частность, я говорю про model tracking вообще.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38463083
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КОтчаялся освоить WPF? Слабак!
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38463097
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netivanАлексей К,

да а почему именно List? Это все лишь частность, я говорю про model tracking вообще.Мне кажется, этого достаточно. :-)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38463172
netivan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К,

ну странно. Есть у вас модель - 20 свойств. Надо же поддержать Undo и IsChanged в общем виде.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38463190
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Педалеграблестроители...
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38463251
netivan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

и в чем же?Может быть есть стандартные средства и я их не нашел? Тогда буду благодарен за тынц))
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38463278
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netivanАлексей К,

ну странно. Есть у вас модель - 20 свойств. Надо же поддержать Undo и IsChanged в общем виде.Undo при редактировании в диалоге происходит естественным образом. В IsChanged тоже не вижу смысла. Сохраняется "тупо всё".
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38463292
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netivanМСУ, и в чем же?Может быть есть стандартные средства и я их не нашел? Тогда буду благодарен за тынц))
В том, что на каждый чих нужно городить свой огород. Идея фреймворка заключается в том, что есть богатый функционал, которого хватает с головой для решения типовых задач. Например, возьмем тот же мвц - там даже свой DI контейнер есть прям в фреймворке, не говоря о куче функционала.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38463326
netivan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КnetivanАлексей К,

ну странно. Есть у вас модель - 20 свойств. Надо же поддержать Undo и IsChanged в общем виде.Undo при редактировании в диалоге происходит естественным образом. В IsChanged тоже не вижу смысла. Сохраняется "тупо всё".
не понял что значит в режиме диалога автоматически. Есть модель, ее кто-то должен тогда скопировать. А вы помянете одно значени и сохранять все? А если поменяли с ХХХ на тот же ХХХ - то зачем процедура сохранения?)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38463730
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netivanАлексей Кпропущено...
Undo при редактировании в диалоге происходит естественным образом. В IsChanged тоже не вижу смысла. Сохраняется "тупо всё".
не понял что значит в режиме диалога автоматически. Есть модель, ее кто-то должен тогда скопировать. А вы помянете одно значени и сохранять все? А если поменяли с ХХХ на тот же ХХХ - то зачем процедура сохранения?)Ну перед открытием диалога клонируем (или перезапрашиваем с сервера) текущую запись в списке. Отдаём клона диалогу редактирования. При применении диалога сохраняем в базу всю запись и заменяем текущую запись в списке клоном. При отмене тупо закрываем диалог и ничего не делаем.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38463733
netivan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К,

ну типа да. Только хотелось бы это автоматизировать как-то. И мне кнопка IsChanged важна :)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38463760
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netivanАлексей К,

ну типа да. Только хотелось бы это автоматизировать как-то. И мне кнопка IsChanged важна :)Я чуть раньше упоминал, что заканчиваю работу над мануалом к нашему фреймворку. Если интересно - дам потом ссылку. Там есть реализация типовой формы редактирования. Этот пример взят оттуда.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38463780
netivan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К,

от ссылки не откажусь. с свою очередь тоже обещаю ссылку. LockUI особенно нравится :)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38463892
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КnetivanАлексей К,

ну типа да. Только хотелось бы это автоматизировать как-то. И мне кнопка IsChanged важна :)Я чуть раньше упоминал, что заканчиваю работу над мануалом к нашему фреймворку. Если интересно - дам потом ссылку. Там есть реализация типовой формы редактирования. Этот пример взят оттуда.
Коллекции вместе с view - это крутой замес.
Не показывай этот ужас никому, иначе нанесешь урон РЖД хуже, чем партизаны немцам.
Тяга к собственным лисапедам у нас не истребима.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38464388
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVaАлексей Кпропущено...
Я чуть раньше упоминал, что заканчиваю работу над мануалом к нашему фреймворку. Если интересно - дам потом ссылку. Там есть реализация типовой формы редактирования. Этот пример взят оттуда.
Коллекции вместе с view - это крутой замес.Где там View? Это базовая ViewModel, просто она унаследована он DependencyObject и имеет DependencyProperty. Она от этого View не становится.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38464408
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netivanLockUI особенно нравится :)Приятно. :-)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38464443
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КSeVaпропущено...

Коллекции вместе с view - это крутой замес.Где там View? Это базовая ViewModel, просто она унаследована он DependencyObject и имеет DependencyProperty. Она от этого View не становится.

Какая разница. Нарушен принцип единичной ответственности. Если vm, то все поставлено с ног на голову.
ViewModel должен содержать список, а не наоборот. Это бред
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38464479
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVaАлексей Кпропущено...
Где там View? Это базовая ViewModel, просто она унаследована он DependencyObject и имеет DependencyProperty. Она от этого View не становится.

Какая разница. Нарушен принцип единичной ответственности. Если vm, то все поставлено с ног на голову.
ViewModel должен содержать список, а не наоборот. Это бред
Не понял, что там нарушено?
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
class UiCollection<T> : DependencyObject
{
    public IEnumerable<T> Items { get; set; }

    public ICollectionView ItemsView { get; }

    public T CurrentItem { get; }
}

class UiEditableCollection<T> : UiCollection<T>
{
   //...
}
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38464485
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К, а с какого перепуга вью модель должна зависеть от WindowsBase.dll?
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38464488
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей К, а с какого перепуга вью модель должна зависеть от WindowsBase.dll?Мне так нравится. :-)

У меня нет необходимости поддерживать несколько UI библиотек. Я реалист. :-)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38464506
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КМне так нравится. :-)
Вопросов больше не имею

P.S. Я понимаю, если бы речь шла о MVC... Там есть несколько ситуаций, когда действительно нужно к модели прибивать мвц-шные кости. Один из таких примеров, приём файла на сервер с клиента. Да, нужно объявлять в модели System.Web.HttpPostedFileBase для маппинга файла, ничего не поделаешь. Но чтобы специально прибивать толстосвязные UI-гвозди, ну я не знаю...
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38464512
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУНо чтобы специально прибивать толстосвязные UI-гвозди, ну я не знаю...Я знаю. :-)

С одной стороны заманчивая независимость слоя вьюмоделей от UI-библиотеки. С другой - возможность нахаляву иметь датабиндинг между свойствами вьюмоделей. Независимость от UI мне не нужна. Выбор очевиден.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38464514
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зы: у меня модель не зависит от UI (INotifyPropertyChanged в WCF Proxy не в счёт), мне этого достаточно.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38464526
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КС другой - возможность нахаляву иметь датабиндинг между свойствами вьюмоделей.
Так имей, но в отдельном слое :)

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
public class WindowService : IWindowService
{
    public void UpdateDetailWindow(Employee employee)
    {
        var window = ActiveWindow;
        var grid = ActiveWindow.FindName("employeesGrid") as DataGrid;
        (grid.ItemsSource as ObservableCollection<Employee>).Insert(0, employee);
        grid.SelectedItem = employee;
    }
}



Вот так мы из вью модели через IWindowService добавили новую запись в грид без передергивания БД и подсветили её.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38464533
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУВот так мы из вью модели через IWindowService добавили новую запись в грид без передергивания БД и подсветили её.Поздравляю :-)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38464538
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей КС другой - возможность нахаляву иметь датабиндинг между свойствами вьюмоделей.
Так имей, но в отдельном слое :)Как же я сразу не догадался.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38464539
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бесит нативное отсутствие System.ComponentModel.DataAnnotations для валидации... Ну что за свинство :( Ну хоть IDataErrorInfo есть и то хорошо.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38464540
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей ККак же я сразу не догадался.
Не понял сарказма... :)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38464542
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУБесит нативное отсутствие System.ComponentModel.DataAnnotations для валидации... Ну что за свинство :( Ну хоть IDataErrorInfo есть и то хорошо."Используй ValidationRule, Люк!" (ц)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38464543
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей ККак же я сразу не догадался.
Не понял сарказма... :)А я не понял накой мне эти педали лишний слой. :-)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38464545
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К"Используй ValidationRule, Люк!" (ц)
А если у меня сложная валидация? Сейчас работает вот так, вроде устраивает:

...
Код: xml
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.
43.
44.
45.
46.
47.
48.
49.
<Window x:Class="WpfApplication.EmployeeDetailWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="Карточка сотрудника" Height="249" Width="338" WindowStartupLocation="CenterOwner" ResizeMode="NoResize">
    <Window.Resources>
        <Style TargetType="TextBox">
            <Setter Property="Validation.ErrorTemplate">
                <Setter.Value>
                    <ControlTemplate>
                        <StackPanel Orientation="Horizontal">
                            <AdornedElementPlaceholder/>
                            <TextBlock Foreground="Red" Padding="1">*</TextBlock>
                        </StackPanel>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
            <Style.Triggers>
                <Trigger Property="Validation.HasError" Value="true">
                    <Setter Property="ToolTip" Value="{Binding RelativeSource={x:Static RelativeSource.Self}, Path=(Validation.Errors)[0].ErrorContent}" />
                </Trigger>
            </Style.Triggers>
        </Style>
    </Window.Resources>
    <Grid FocusManager.FocusedElement="{Binding ElementName=LastName}">

        <TextBox KeyboardNavigation.TabIndex="0" x:Name="LastName" Text="{Binding LastName, ValidatesOnDataErrors=True, UpdateSourceTrigger=PropertyChanged}" HorizontalAlignment="Left" Height="23" Margin="10,10,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="302"/>

        <TextBox KeyboardNavigation.TabIndex="1" x:Name="FirstName" Text="{Binding FirstName, ValidatesOnDataErrors=True, UpdateSourceTrigger=PropertyChanged}" HorizontalAlignment="Left" Height="23" Margin="10,38,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="302"/>

        <Button KeyboardNavigation.TabIndex="3" IsCancel="True" Content="Отмена" Margin="0,0,10,10" VerticalAlignment="Bottom" HorizontalAlignment="Right" Width="75" />

        <Button KeyboardNavigation.TabIndex="2" Command="{Binding SaveCommand}" CommandParameter="{Binding RelativeSource={RelativeSource AncestorType={x:Type Window}}, Path=DataContext}" Content="Сохранить" HorizontalAlignment="Right" Margin="0,0,90,10" VerticalAlignment="Bottom" Width="75">
            <Button.Style>
                <Style TargetType="{x:Type Button}">
                    <Setter Property="IsEnabled" Value="False" />
                    <Style.Triggers>
                        <MultiDataTrigger>
                            <MultiDataTrigger.Conditions>
                                <Condition Binding="{Binding ElementName=LastName, Path=(Validation.HasError)}" Value="false" />
                                <Condition Binding="{Binding ElementName=FirstName, Path=(Validation.HasError)}" Value="false" />
                            </MultiDataTrigger.Conditions>
                            <Setter Property="IsEnabled" Value="True" />
                        </MultiDataTrigger>
                    </Style.Triggers>
                </Style>
            </Button.Style>
        </Button>
    </Grid>
</Window>

...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38464548
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КА я не понял накой мне эти педали лишний слой. :-)
Тестирование, моки, слабосвязность, чистота кода, общее душевное равновесие :)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38464556
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вью модель:

...
Код: c#
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.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
public class EmployeeViewModel : IDataErrorInfo
{
    private IDataContext Context;
    private IWindowService Service;

    public EmployeeViewModel()
    {
        Context = new DataContext(); // todo IoC resolve
        Service = new WindowService(); // todo IoC resolve
    }

    public int EmployeeId { get; set; }

    public string FirstName { get; set; }
        
    public string LastName { get; set; }

    public ICommand SaveCommand
    {
        get
        {
            return new RelayCommand((action) =>
            {
                if (Service.IsValid)
                {
                    var vm = action as EmployeeViewModel;
                    Context.UpdateEmployee(vm.EmployeeId, vm.FirstName, vm.LastName);
                    Service.CloseActiveWindow(true);
                }
            });
        }
    }

    public string Error
    {
        get { return null; }
    }

    public string this[string columnName]
    {
        get
        {
            if (columnName == "FirstName")
            {
                if (string.IsNullOrEmpty(this.FirstName))
                {
                    return "Значение не должно быть пустым";
                }
            }

            if ((columnName == "LastName"))
            {
                if (string.IsNullOrEmpty(this.LastName))
                {
                    return "Значение не должно быть пустым";
                }
            }

            return null;
        }
    }
}

...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38464604
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУА если у меня сложная валидация?Я сложную валидацию делаю на сервере при сохранении записи. И ниипёт... :-)

Клиентская валидация - это так, бантик...
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38464607
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей КА я не понял накой мне эти педали лишний слой. :-)
Тестирование, моки, слабосвязность, чистота кода, общее душевное равновесие :)Чё тут тестировать? Тестировать надо модель. А она вообще на сервере...
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38464623
netivan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУБесит нативное отсутствие System.ComponentModel.DataAnnotations для валидации... Ну что за свинство :( Ну хоть IDataErrorInfo есть и то хорошо.
да он еще с времен царя есть)) наше все.
Алексей, поделись своими расширениями для Тасков)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38464630
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netivanАлексей, поделись своими расширениями для Тасков)Ну я когда выложу мануал там это тоже будет.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38464638
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КЯ сложную валидацию делаю на сервере при сохранении записи. И ниипёт... :-)
Сервер само собой, клиенту доверять нельзя. Я о том, что XAML валидация намного слабее по возможностям, чем C# валидация в IDataErrorInfo.

Алексей ККлиентская валидация - это так, бантик...
Согласен, но нужно же подсветить клиенту то, что не прошло валидацию на том же сервере. И для этого ValidationRule как бы курит в сторонке.

Алексей КЧё тут тестировать? Тестировать надо модель. А она вообще на сервере...
Уволен без выплаты материального пособия :) Методика тестирования WPF приложений - Microsoft
Unit-тестированиеприменительно к UI: Тестируется ViewModel(Controller) и опосредовано Model

netivanМСУБесит нативное отсутствие System.ComponentModel.DataAnnotations для валидации... Ну что за свинство :( Ну хоть IDataErrorInfo есть и то хорошо.
да он еще с времен царя есть)) наше все.
Алексей, поделись своими расширениями для Тасков)
Выделел красным. Перечитай еще раз, вдумайся в сказанное, осмысли :)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38464856
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей КЯ сложную валидацию делаю на сервере при сохранении записи. И ниипёт... :-)
Сервер само собой, клиенту доверять нельзя. Я о том, что XAML валидация намного слабее по возможностям, чем C# валидация в IDataErrorInfo.

Алексей ККлиентская валидация - это так, бантик...
Согласен, но нужно же подсветить клиенту то, что не прошло валидацию на том же сервере. И для этого ValidationRule как бы курит в сторонке.
Мне его хватает. А будешь ворчать, вообще делать валидацию на клиенте не буду.
МСУАлексей КЧё тут тестировать? Тестировать надо модель. А она вообще на сервере...
Уволен без выплаты материального пособия :) Методика тестирования WPF приложений - Microsoft
Unit-тестированиеприменительно к UI: Тестируется ViewModel(Controller) и опосредовано ModelТебя SeVa что ли опять укусил?

Что там во вьюмодели тестировать? Там логика типа "отключить кнопку редактирования если список пустой". Ты это тестировать собрался? У меня вся прикладная логика в модели.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38464892
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КМне его хватает. А будешь ворчать, вообще делать валидацию на клиенте не буду.
Не гунди, а слухай сюда :) Сделай мне вот такую элементарную валидацию на XAML 14147407

Алексей КЧто там во вьюмодели тестировать?
Не спорь, верь мне. Я знаю, что нужно делать )
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38464907
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей КМне его хватает. А будешь ворчать, вообще делать валидацию на клиенте не буду.
Не гунди, а слухай сюда :) Сделай мне вот такую элементарную валидацию на XAML 14147407 В WPF можно делать валидаторы для нескольких полей. Смотри BindingGroup .
МСУАлексей КЧто там во вьюмодели тестировать?
Не спорь, верь мне. Я знаю, что нужно делать )Что-то мне подсказывает, что я могу потом пожалеть об этом.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38464963
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К, ты мне напоминаешь "й" :)

...
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38464979
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей К, ты мне напоминаешь "й" :)Что-то в этом есть. :-)

Кстати, а ты чё такой довольный? Уверен, что в WinRT есть поддержка IDataErrorInfo? В прошлый раз её не было.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38465040
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей ККстати, а ты чё такой довольный?
Так разбанили же намедни
...[img=http://oboiki.net/uploads/photos/show/[30]_1_Feb_12_[31]_13_Aug_12/3298_kote.jpg]


Алексей КУверен, что в WinRT есть поддержка IDataErrorInfo? В прошлый раз её не было.
Вот тут не скажу, ибо не знаю.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38465185
netivan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

чувствуется друное влияние MVC
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38465195
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netivanМСУ, чувствуется друное влияние MVC
Хороший фреймворк может избаловать...
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38465206
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netivanМСУ,

чувствуется дурное влияние MVC SeVa
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38465257
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К, а я не понял, кули мы такие весёлые? В РЖД уже что, всё работает?
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38465369
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
:-)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38465393
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К, ну чё, набросал по сути концепт. Ты, как терминатор впф'а, должен экспертно оценить, насколько качественен код :)
Писал на чистой нативщине без привлечение сторонних библиотек и ужасного гавнокода . Просто, понятно, без фанатизма.

И чё вы так все ссытесь этого mvvm, в 99% случаев его хватает с лихвой для написание вменяемого кода. Одно удовольствие корёжить вью, когда у тебя ничего не сыпется из-за унылого код бехайнда. Хоть грохни всё представление, программа будет работать.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38465394
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38465402
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ
Код: c#
1.
var grid = ActiveWindow.FindName("employeesGrid") as DataGrid;


Код: c#
1.
var grid = (DataGrid)ActiveWindow.FindName("employeesGrid");


Я бы начал с этого.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38465425
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КЯ бы начал с этого.
Тогда уж так :)

Код: c#
1.
var grid = (Selector)window.FindName("employeesGrid");
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38465428
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей КЯ бы начал с этого.
Тогда уж так :)

Код: c#
1.
var grid = (Selector)window.FindName("employeesGrid");

Я к тому, что после as всегда должна ставиться проверка на null .
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38465431
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КЯ к тому, что после as всегда должна ставиться проверка на null .
Я железно уверен, что там будет, поэтому можно и подзабить :)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38465869
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей КЯ к тому, что после as всегда должна ставиться проверка на null .
Я железно уверен, что там будет, поэтому можно и подзабить :)

Я опять в шоке. Это говорит МСУ??? Это должно быть провокация.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38465914
enigmatic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КМСУпропущено...

Тогда уж так :)

Код: c#
1.
var grid = (Selector)window.FindName("employeesGrid");

Я к тому, что после as всегда должна ставиться проверка на null .
1. Если там не селектор, то код может смело бросать исключение.
2. Если мы поставили as и проверку на null, то что мы напишем, если вернется не Selector?
Код: c#
1.
2.
3.
4.
var grid = window.FindName("employeesGrid") as Selector;
if (grid == null) {
    // ...
}
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38465969
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MonochromatiqueЯ опять в шоке. Это говорит МСУ??? Это должно быть провокация.
Да что ж такое. Если я стабильно ожидаю только один тип и никакой другой, зачем заморачиваться над лапшекодом с проверками? Если будет исключение (глобальная обработка), это даже хорошо. Мы сразу поймем, что программа работает криво априори.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38465997
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей К, ну чё, набросал по сути концепт. Ты, как терминатор впф'а, должен экспертно оценить, насколько качественен код :)
Писал на чистой нативщине без привлечение сторонних библиотек и ужасного гавнокода . Просто, понятно, без фанатизма.

И чё вы так все ссытесь этого mvvm, в 99% случаев его хватает с лихвой для написание вменяемого кода. Одно удовольствие корёжить вью, когда у тебя ничего не сыпется из-за унылого код бехайнда. Хоть грохни всё представление, программа будет работать.

http://www.sql.ru/forum/actualfile.aspx?id=15130074] Приложенный файл (WpfApplicationVS10.zip - 18Kb)

Муслима, кто победил? У кого больше куча говнокода?

Нет времени посмотреть, но бьюсь об заклад, что там нет ни одного дженерика, трудолюбивые ржд'шники будут на каждый чих свою vm рисовать.
Теперь понятно, что это РЖД лобирует завоз 200К таджиков в ИТ.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38466022
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVa, ты наконец осилил дженерики?
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38466090
netivan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУSeVa, ты наконец осилил дженерики?не начинай)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38466209
Фотография Шайтан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netivanМСУSeVa, ты наконец осилил дженерики?не начинай)а чо так? пятнеца же!
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38466298
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУSeVa, ты наконец осилил дженерики?

МСУ - это бот, которые способен только тупо повторять.
Тебя даже не поставят таджикам лопаты выдавать, когда их РЖД начнет вагонами завозить.

ЗЫ Посмотрел твою нетленку, получил истинное удовольствие
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38466305
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVa - это параноик, которому даже собственный член доверить нельзя. Ибо сломает и удивится, ведь член должен был быть крепче мембершипа.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38466562
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Муся, твои голубые аналогии умиляют еще больше, чем твой говнокод.
До сих пор только свою теребить научился. Большие инструменты взрослых дядей тебя пугают.
Пора взрослеть, малыш, а то так детинкой и помрешь.

ЗЫ Первые шажки уже делаешь, даже узнал про WindowsIdentity. Твоя бяка с говномембершипом не лепится к wpf
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38466565
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЗЫЫ RelayCommand тоже с детской ошибкой и утечками памяти.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38466688
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Долбосева, о каких голубых тереблениях идет речь? Опять на ночь порнографию гоняешь?
Ну пукнул на счет RelayCommand, продолжай. Али опять понос во рту решил пополоскать. Замени понос ядом, сделай обществу подарок. А то твоя откровенная тупоголовая глупость начинает порядком надоедать. Действуй.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38466791
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУДолбосева, о каких голубых тереблениях идет речь? Опять на ночь порнографию гоняешь?
Ну пукнул на счет RelayCommand, продолжай. Али опять понос во рту решил пополоскать. Замени понос ядом, сделай обществу подарок. А то твоя откровенная тупоголовая глупость начинает порядком надоедать. Действуй.

Шалунишка под одеяльный, почитай, что взрослые дяди пишут. Должны быть слабые ссылки
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38466801
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVaШалунишка под одеяльный, почитай, что взрослые дяди пишут. Должны быть слабые ссылки
У меня не статика, гнусный любитель клубнички. При закрытии окна, прибьются все связанные с ним команды. Учи матчасть, бестолочь.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38466861
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУSeVaШалунишка под одеяльный, почитай, что взрослые дяди пишут. Должны быть слабые ссылки
У меня не статика, гнусный любитель клубнички. При закрытии окна, прибьются все связанные с ним команды. Учи матчасть, бестолочь.

Голубая луна, ты так ничего не понял. Посему таким дятлам рекомендуется не заниматься собственными глупостями, а
брать готовое.
Запиши у себя на лбу "WPF и Winforms - две большие разницы. В wpf контролы не реализуют IDisposable, все должно быть на слабых ссылках".
Если в winforms hWnd есть у каждого контрола, то WPF один на все, принудительная сборка будет только при закрытии приложения и тд.
Твои говноподходы здесь не работают.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38467313
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVaГолубая луна, ты так ничего не понял. Посему таким дятлам рекомендуется не заниматься собственными глупостями, а
брать готовое.
Запиши у себя на лбу "WPF и Winforms - две большие разницы. В wpf контролы не реализуют IDisposable, все должно быть на слабых ссылках".
Если в winforms hWnd есть у каждого контрола, то WPF один на все, принудительная сборка будет только при закрытии приложения и тд.
Твои говноподходы здесь не работают.
Петушилко, садись, двойка. What is the correct way to dispose of a WPF window?

http://msdn.microsoft.com/en-us/library/system.windows.window.close.aspx Closing a window causes the Closing event to be raised. If the Closing event isn't canceled, the following occurs:
The Window is removed from Application.Windows (if an Application object exists).
The Window is removed from the owner Window if the owner/owned relationship was established before the owned Window was shown and after the owner Window was opened.
The Closed event is raised.
Unmanaged resources created by the Window are disposed.
If ShowDialog was called to show the Window, ShowDialog returns.
Closing a Window causes any windows that it owns to be closed. Furthermore, closing a Window may cause an application to stop running depending on how the Application.ShutdownMode property is set.


Тебе нужно сделать наколку на жопе и отправить тебя в голубятню. Как был бестолочью, так ей и сгинешь.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38467338
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Данила - форумная дрочила, где там написано, что делается отписка от событий?
Удаляются только Unmanaged resources и только.
Я тебе дал статью, где подробно разжевано отчего и почему и даже с примером, который это демонстрирует.
Если тебе этого мало, то почитай еще .

Баг в prism , который давным давно пофиксили, один ты еще детские сопли глотаешь.

В РЖД я бы тебе даже стрелки переводить не дал бы в силу твоей полной тупости.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38467363
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVaгде там написано, что делается отписка от событий?
Сева, форумная проститутка, купи себе голову:

http://msdn.microsoft.com/en-us/library/system.windows.window.close.aspx The Closed event is raised

Так лучше видно? Или подсветить фонариком?

SeVaУдаляются только Unmanaged resources и только.
Удаляется всё, что связано с окном, бестолочь. Что свойственно идеологии .NET.

SeVaЯ тебе дал статью, где подробно разжевано отчего и почему и даже с примером, который это демонстрирует.
Выбрось свою статью вместе со своим мозгом. Читай документацию. Тебе даже кур пасти противопоказано.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38467366
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУSeVaгде там написано, что делается отписка от событий?
Сева, форумная проститутка, купи себе голову:
http://msdn.microsoft.com/en-us/library/system.windows.window.close.aspx The Closed event is raised
Не то скопировал.

http://msdn.microsoft.com/en-us/library/system.windows.window.close.aspx Unmanaged resources created by the Window are disposed

То есть неуправляемые диспоузятся, а управляемые нет? Бред сивой кобылы. Разумеется, речь о том, что ресурсы, созданные окном, уничтожаются. И обработчики в том числе.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38467497
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Муслима, с каких это пор контролы стали неуправляемыми ресурсами?
Напрягись один раз, собери свои зачатки мозга в кучку, почитай о том, что такое профайлер и как искать утечки памяти, а потом посмотри сам.

А в это время форум недели три отдохнет от твоего визга и маразма.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38467513
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVaМуслима, с каких это пор контролы стали неуправляемыми ресурсами?
Долбосева, прочитай еще раз моё предложение. И еще раз. Если двух раз будет мало, тогда выпей яду. Когда яд начнет действовать, осознай, какую глупость ты опять ляпнул. Никто не говорит о том, что контролы неуправляемы. Речь о другом.

SeVaНапрягись один раз, собери свои зачатки мозга в кучку, почитай о том, что такое профайлер и как искать утечки памяти, а потом посмотри сам.
Найди мне своим профайлером, например, утечку события клика кнопки после закрытии формы Close. Сразу на нобель пойдешь.

SeVaА в это время форум недели три отдохнет от твоего визга и маразма.
Форум уже отдохнул и снова жаждет твоих чумных отжигов.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38467521
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVa, у тебя моск в утечках, а не функционал wpf. Вон, 100 лет назад текло в эвенте DelegateCommand.CanExecuteChanged, и то у твоей долбаной призмы. Потом пофиксили. В фреймворке ничего не течет, если не пользоваться велосипедами, которым утыкан твой прыщавый лапшекод. Пшел вон, проститутская бездарность.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38467561
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУSeVa, у тебя моск в утечках, а не функционал wpf. Вон, 100 лет назад текло в эвенте DelegateCommand.CanExecuteChanged, и то у твоей долбаной призмы. Потом пофиксили. В фреймворке ничего не течет, если не пользоваться велосипедами, которым утыкан твой прыщавый лапшекод. Пшел вон, проститутская бездарность.

идиот, у CanExecuteChanged там была ровно такая же реализация как в твой навозной куче. заменили на слабые ссылки.
А у тебя стыренный код из единственной статьи msdn на русском, которую ты смог осилить, и которой сто лет в обед.

ЗЫ Идиот может всосать только свой говнокод. Даже элементарный проект, где все четко демонстрируется, ничего тебе не говорит. Можешь только ссылками тыкать, в которых ни бельмеса не понимаешь.

ЗЫЫ Пусть уж лучше РЖД таджиков вагонами завозит, хуже не будет, если даже тебя взяли.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38467677
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Придурок, у CanExecuteChanged не было такой же реализации, текла вся убогая призма. Всё уже давно пофиксили и окно при закрытии прибивает обработчики, неуч. Или тесты на утечку в студию.
Сиди дальше ковыряйся в своем навозе, петушилко. Тебе только кур смешить да со свиньями в отстойнике обниматься - вот твой удел. Как был бестолочью во всём, так ей и помрешь.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38467703
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таджик, а что ты знаешь о призм? Ты опять вякаешь без всякого понятия.

Было , наблюдаем
Код: c#
1.
2.
3.
4.
 ///<summary>
        ///Occurs when changes occur that affect whether or not the command should execute.
        ///</summary>
        public event EventHandler CanExecuteChanged;


как в твоем говнокоде,а в v2.2 уже
Код: c#
1.
private List<WeakReference> _canExecuteChangedHandlers;



Ошибки бывают везде, но если это не свои велосипеды, то они тестируются другими разработчиками и исправляются. У тебя мозга не хватило бы даже найти это, а уж тем более исправить.
Про слабые ссылки, на которых построен весь wpf, ты даже не слышал. После пару открытых окон твои нетленки падали бы, а ты визжал бы на форуме, что wpf - глюкавая поделка.

Твой любимый EF еще большая педаль с кривыми запросами к БД, но тебя он полностью устраивает, тк делался он для таких как ты мартышек, чтобы они со скудными запасами мозга могли клацать не напрягая извилин.
Призм - совсем другая серия. Команда p&p показывает только возможные пути решения для построения нормальной архитектуры и не дает готовые варианты, нужно думать свой башка, а с этим у тебя проблемы.
Помимо этого, с твоими скудными познаниями ты даже не поймешь о чем речь и тебе это просто не нужно, тк
как настоящий таджик ты привык тупо махать лопатой и обходится одним копи-пастом.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38467760
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тупорылая blue-кодеманка, ты своим скромным умишком до сих пор не научился читать документацию? А в документации сказано, что прибивается всё, что связано с окном. Обработчики не исключение. Твой поделочный гавнопризм просто окончательно отрафировал твой недомозг, живешь статьями десятилетней давности, когда xaml был еще тем ушлепным механизом. Сейчас всё не так, функционал Close сделает всю грязную работу. Это даже дети знают: IDisposable member of WPF Window class

...Alternatively you could add an event handler the the Window. Closed event and do your disposing there .

...Approaches you can use:
Use Closed event on Window.
Implement IDisposable interface yourself for this Window.

Слабые ссылки в твоей тупой голове, а не в WPF, бестолочь. Иди кур паси лучше, это единственное, на что ты годишься.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38467761
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А до WF ты еще не дорос и не дорастешь никогда, поэтому даже не начинай. Только нативный SQL можно использовать таким тупицам, как ты. Никаких абстракций, чистый хардкор.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38467762
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУА до EF ты еще не дорос
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38467791
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Элементарный пример показал, что никакой разницы по памяти нет с RelayCommand и без такового. Монопенисуально.

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
var view = new EmloyeesWindow();
view.DataContext = new EmloyeesViewModel { Title = "Test data" };
var grid = LogicalTreeHelper.GetChildren(view).OfType<Grid>().Single();

for (int i = 0; i < 10000; i++)
{
    var button = new Button();
    button.Content = "Кнопка " + i;
    button.Command = new RelayCommand((action) => { grid.Children.Remove(button); });
    grid.Children.Add(button);
}
            
view.ShowDialog();
view.Close();
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38467851
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУЭлементарный пример показал, что никакой разницы по памяти нет с RelayCommand и без такового. Монопенисуально.

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
var view = new EmloyeesWindow();
view.DataContext = new EmloyeesViewModel { Title = "Test data" };
var grid = LogicalTreeHelper.GetChildren(view).OfType<Grid>().Single();

for (int i = 0; i < 10000; i++)
{
    var button = new Button();
    button.Content = "Кнопка " + i;
    button.Command = new RelayCommand((action) => { grid.Children.Remove(button); });
    grid.Children.Add(button);
}
            
view.ShowDialog();
view.Close();



Муслим, единственное, что ты можешь показать - это фигу в кармане.
Это бред только подтверждает, что ты полный му**к и даже не понимаешь о чем идет речь.
За это домашнее задание тебе два, завтра утром попробуй показать нормальный вариант,
который должен быть, чтобы показать утечки.

Ссылку с готовым примером я тебе уже давал. Твой кишлак даже по готовому коду ничего сделать не может?
Тебе даже баранов пасти опасно доверять.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38467853
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ...Approaches you can use:
Use Closed event on Window.
Implement IDisposable interface yourself for this Window.

Где ты этот маразм вычитал? Сначала создаем себе грабли, а потом в каждом окне на них наступаем.
Чучело, что нужно сделать сделать, чтобы отписаться?
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38467865
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVaМуслим, единственное, что ты можешь показать - это фигу в кармане.
Это бред только подтверждает, что ты полный му**к и даже не понимаешь о чем идет речь.
За это домашнее задание тебе два, завтра утром попробуй показать нормальный вариант,
который должен быть, чтобы показать утечки.

Ссылку с готовым примером я тебе уже давал. Твой кишлак даже по готовому коду ничего сделать не может?
Тебе даже баранов пасти опасно доверять.
Долбосев, ты укуренное полуобморочное чмо, которое не может осилить элементарного примера, который черным по-белому демонстрирует тот факт, что ты гавно. Как в прямом так и переносном смыслах.
Ты уже битый день пытаешь родить утечки на пустом месте, пока получается рожать только фекалийные массы прямо из твоего поганого рта. Собственно, в чем и выражается твоя гнилая натура.
Ты еще не дорос до этого кода, голубок. Пастбище баранов таки отдыхает. Попробуй потужиться, может получится родить что-то более или менее приемлемое по теме. А пока ты обычный ублюдок, от которого в форуме поднимается лишь пыль.

SeVaГде ты этот маразм вычитал? Сначала создаем себе грабли, а потом в каждом окне на них наступаем.
Чучело, что нужно сделать сделать, чтобы отписаться?
А документации я этот маразм вычитал, бестолочь. Грабли создаются у тебя в башке, чудовище. Закрывай окно и ни о чем не думай.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38468153
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVaНет времени посмотреть, но бьюсь об заклад, что там нет ни одного дженерика, трудолюбивые ржд'шники будут на каждый чих свою vm рисовать.Что не так с generic ?
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38468536
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лёня, а xaml таки ничего, мне он всё больше и больше нравится :)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38468548
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУА SeVa таки прав про утечку. Сделай лучше что-то вроде:
Код: c#
1.
2.
3.
4.
5.
        event EventHandler ICommand.CanExecuteChanged 
        { 
            add { CommandManager.RequerySuggested += value; } 
            remove { CommandManager.RequerySuggested -= value; } 
        } 
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38468550
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУЛёня, а xaml таки ничего, мне он всё больше и больше нравится :)Подожди, глубже копнёшь - он тебя ещё выбесит. :-)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38468581
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КСделай лучше что-то вроде
Ок. Но вся проблема (по моим тестам), что вообще весь WPF течет. Код даже без ICommand протекает, проверь сам. Да и вообще, попробовал создать тыщу окон, потом в цикле их закрыл, даже вызвал GC.Collect. До коллекта было очень много мусора, после него немного прибралось. Но на 20% память таки выросла. Повторил еще 4 раза это дело, в итоге память выросла до 200Мб. Я в шоке. Весь XAML течет, мать его...

Алексей КПодожди, глубже копнёшь - он тебя ещё выбесит. :-)
HTML наше всё? )
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38468605
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей КСделай лучше что-то вроде
Ок. Но вся проблема (по моим тестам), что вообще весь WPF течет. Код даже без ICommand протекает, проверь сам. Да и вообще, попробовал создать тыщу окон, потом в цикле их закрыл, даже вызвал GC.Collect. До коллекта было очень много мусора, после него немного прибралось. Но на 20% память таки выросла. Повторил еще 4 раза это дело, в итоге память выросла до 200Мб. Я в шоке. Весь XAML течет, мать его...Ну не знаю. Утечек в WPF4 не замечал. Попробуй ICommand поправить. Вероятно в нём дело. Если даже не в нём - твоя совесть будет чиста. :-)

МСУАлексей КПодожди, глубже копнёшь - он тебя ещё выбесит. :-)
HTML наше всё? )Время покажет. :-)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38468644
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КНу не знаю. Утечек в WPF4 не замечал. Попробуй ICommand поправить. Вероятно в нём дело. Если даже не в нём - твоя совесть будет чиста. :-)
Пробовал уже :) Вот тут я пример выкладывал 15143865 , закомментируй button.Command и проверь. Утечек немеряно.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38468652
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Меня всё больше и больше радует WPF
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38469081
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей КНу не знаю. Утечек в WPF4 не замечал. Попробуй ICommand поправить. Вероятно в нём дело. Если даже не в нём - твоя совесть будет чиста. :-)
Пробовал уже :) Вот тут я пример выкладывал 15143865 , закомментируй button.Command и проверь. Утечек немеряно.

А нечего там комментировать. В прошлый раз смотрел бегло(очень опасно глубоко нырять, можно не отмыться потом), эта лошара даже единственную статью не осилила, сделала совершенно в тупую и даже не удосужилась реализовать полностью весь функционал. CanExecute всегда true.
Пионерская поделка без всякого смысла.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38469091
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей КСделай лучше что-то вроде
Ок. Но вся проблема (по моим тестам), что вообще весь WPF течет. Код даже без ICommand протекает, проверь сам. Да и вообще, попробовал создать тыщу окон, потом в цикле их закрыл, даже вызвал GC.Collect. До коллекта было очень много мусора, после него немного прибралось. Но на 20% память таки выросла. Повторил еще 4 раза это дело, в итоге память выросла до 200Мб. Я в шоке. Весь XAML течет, мать его...

Алексей КПодожди, глубже копнёшь - он тебя ещё выбесит. :-)
HTML наше всё? )

Муслима, большой мальчик, а до сих пор не знаешь, что сборка мусора совершенно не означает полную очистку. Где и кем ты работаешь?

Искал шесть секунд, если поковыряться, то еще вагон найду.
Troubleshooting native memory leak in an IIS 7.x Application Pool .
авторThis troubleshooter will help you to identify the cause of native memory leak in an IIS application pool.It’s important to keep in mind that it is normal for high memory allocation as a web application serves requests
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38469211
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУЛёня, а xaml таки ничего, мне он всё больше и больше нравится :)

o_O

Так ты чморил SL ничего о нем не зная??
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38469397
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVaА нечего там комментировать. В прошлый раз смотрел бегло(очень опасно глубоко нырять, можно не отмыться потом), эта лошара даже единственную статью не осилила, сделала совершенно в тупую и даже не удосужилась реализовать полностью весь функционал. CanExecute всегда true.
Пионерская поделка без всякого смысла.
А нечем тебе комментировать ибо вместо башки у тебя помойное ведро. Это идеологический концепт и мне на данный момент не нужен CanExecute. Ты со своими обработчиками скоро слюной изойдешь, бездарность.

SeVaМуслима, большой мальчик, а до сих пор не знаешь, что сборка мусора совершенно не означает полную очистку. Где и кем ты работаешь?
Присаживайся, двойка. Весь .NET так работает, в том числе WinForms.

http://msdn.microsoft.com/ru-ru/library/system.gc.collect(v=vs.110).aspx GC.Collect принудительно запускает немедленную сборку мусора для всех поколений.


Ляпнул очередную глупость, впрочем как всегда. Если осталась хоть капля головного вещества, запусти тот же пример генерации объектов на WinForms и прибей форму. Память честно вернется на исходную позицию.

Monochromatiqueo_O

Так ты чморил SL ничего о нем не зная??
o_O

Так SL у нас уже стал XAML'ом?
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38469484
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КУ меня стойкое убеждение, что валидацию надо делать во View. Как раз для того, чтобы не дублировать свойства модели во вьюмодели.
Таки я не понял, о каком дублировании идет речь. WPF поддерживает только штатную IDataErrorInfo, тем самым описав валидацию во вьюмодели, нигде больше её описывать не потребуется. Бери да и расставляй только ValidatesOnDataErrors=True в представлении. Во-вторых, еще один плюс штатного IDataErrorInfo - переносимость. Это будет работать и в MVC, и в консольном приложении и везде. Я категорически против валидации во вью - напоминает убогие валидаторы уровня представления в WebForms. Мрак. Так зачем же брать плохие практики в XAML? :) Жалко, что нативно не поддерживается DataAnnotations как в MVC, но думаю это дело времени.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38469717
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей КУ меня стойкое убеждение, что валидацию надо делать во View. Как раз для того, чтобы не дублировать свойства модели во вьюмодели.
Таки я не понял, о каком дублировании идет речь.Например, у меня есть класс модели, сгенерированный по WSDL. Какие есть варианты реализации IDataErrorInfo:
1. Partial-класс
2. Дублирование свойств Model во ViewModel.
3. Инкапсуляция Model во ViewModel.

Нуегонах... Лучше уж Binding + ValidationRule во View.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38469725
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУЖалко, что нативно не поддерживается DataAnnotations как в MVC, но думаю это дело времени. Педалей хватает.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38469729
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КМСУпропущено...

Таки я не понял, о каком дублировании идет речь.Например, у меня есть класс модели, сгенерированный по WSDL. Какие есть варианты реализации IDataErrorInfo:
1. Partial-класс
2. Дублирование свойств Model во ViewModel.
3. Инкапсуляция Model во ViewModel.

Нуегонах... Лучше уж Binding + ValidationRule во View.

Элементарно, Ватсон. Третий пункт наше всё, почему бы и нет? Класс модели, сгенерированный по WSDL, это тупая DTO. Накойхер (с) мне DTO прибивать к вью? Я, как разумный человек (а не опасная обезьянка), сделаю свою вью модель и вкорячу отдельным свойством эту DTO. Задача решена.

Онли честная IDataErrorInfo валидация и баста. Никаких говновалидацией во вью! Это исключено.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38469735
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КМСУЖалко, что нативно не поддерживается DataAnnotations как в MVC, но думаю это дело времени. Педалей хватает.
Так не хочется педалей, хочется доброго натива.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38469742
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУЖалко, что нативно не поддерживается DataAnnotations как в MVC, но думаю это дело времени.А вот интеграция VAB с твоим любимым IDataErrorInfo. :-)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38469749
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей Кпропущено...
Например, у меня есть класс модели, сгенерированный по WSDL. Какие есть варианты реализации IDataErrorInfo:
1. Partial-класс
2. Дублирование свойств Model во ViewModel.
3. Инкапсуляция Model во ViewModel.

Нуегонах... Лучше уж Binding + ValidationRule во View.

Элементарно, Ватсон. Третий пункт наше всё, почему бы и нет?Я пробовал - не понравилось. Дополнительные слои вьюмоделей вокруг модели сильно путают при написании прикладного кода. Лучше уж 1 или 2.

МСУКласс модели, сгенерированный по WSDL, это тупая DTO. Накойхер (с) мне DTO прибивать к вью?Я и не прибиваю. Более того, DTO ничего не знает про валидацию, поскольку она во View. Тут единственный недостаток - несколько View редактирования для одной модели. Но у меня такие случаи до настоящего времени отсутствуют и не планируются.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38469762
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУТак не хочется педалей, хочется доброго натива.Мне тоже много чего хочется, но я же терплю!
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38469822
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КА вот интеграция VAB с твоим любимым IDataErrorInfo. :-)
IDataErrorInfo - это фундаментальный стандарт для .NET, с ним работает всё, что движется :) Более того, этот стандарт является самым максимально избыточным по функционалу, так как с помощью него можно описать валидацию любой сложности. System.ComponentModel.DataAnnotations тоже как бы вполне себе стандарт, но почему-то его не заложили в пласт WPF. Но это не критично. Хотя атрибутивная валидация короче и приятней на вкус.

Алексей КЯ пробовал - не понравилось. Дополнительные слои вьюмоделей вокруг модели сильно путают при написании прикладного кода. Лучше уж 1 или 2.
Какие дополнительные слои вьюмоделей? ) Для каждого представления должна быть только одна вьюмодель. А мешать в один котел DTO, валидацию во вью, вью модель в виде DTO - это очень и очень не здорово. Есть вью, значит должна быть под него вью модель. Это закон. Никаких экономий и прочих гадостей. Вот поэтому тебе mvvm и не понравился, т.к. на чистом DTO далеко не уедешь - я тебя раскусил То есть ты отказываешься от таких вкусностей из-за тупой экономии на вью моделях?

Алексей КМСУКласс модели, сгенерированный по WSDL, это тупая DTO. Накойхер (с) мне DTO прибивать к вью?Я и не прибиваю. Более того, DTO ничего не знает про валидацию, поскольку она во View. Тут единственный недостаток - несколько View редактирования для одной модели. Но у меня такие случаи до настоящего времени отсутствуют и не планируются.
Валидация во вью - это прошлый век и утопия. Немасштабируемо и негибко. Валидация - это часть логики. Нечего ей делать во вью. В случае же валидации в IDataErrorInfo у нас все карты в руках, тут тебе работает и наследование, и переносимость, и универсальность, и стандартность для всего .NET.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38469831
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУВалидация во вью - это прошлый век и утопия. Немасштабируемо и негибко.
Даже новомодный MVC отказался от такой практики, которая была еще со времен монструозного неповоротливого WebForms. Описал логику с помощью IDataErrorInfo или DataAnnotations - получи автоматом бесплатную валидацию на клиенте. Так и в WPF - описал логику в IDataErrorInfo, получи нахаляву валидацию в XAML представлении. Красота. А писать валидацию в XAML - это возврат к эпохе динозавров аля валидаторы уровня представления ASP.NET WebForms
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38469839
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУТо есть ты отказываешься от таких вкусностей из-за тупой экономии на вью моделях? Там экономия не тупая, а вполне реальная.

МСУВалидация во вью - это прошлый век и утопия. Немасштабируемо ..."Контрреволюция" (ц) ?
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38469851
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУЕсть вью, значит должна быть под него вью модель. Это закон.Я достаточно хапнул в своё время из-за этого "закона". :-)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38469860
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КТам экономия не тупая, а вполне реальная.
Какая такая реальная? :) Ты не согласен с постулатом, что у вью должна быть своя вью модель?

Алексей К"Контрреволюция" (ц) ?
:)

Алексей КЯ достаточно хапнул в своё время из-за этого "закона". :-)
Батенька, весь MVC крутится на этом законе и ничего, все довольны :)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38469866
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К, вот честная валидация во вью модели с помощью нативщины IDataErrorInfo, чем она тебе плоха? :)

...
Код: c#
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.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
public class EmployeeViewModel : IDataErrorInfo
{
    private IDataContext Context;
    private IWindowService Service;

    public EmployeeViewModel()
    {
        Context = new DataContext(); // todo IoC resolve
        Service = new WindowService(); // todo IoC resolve
    }

    public int EmployeeId { get; set; }

    public string FirstName { get; set; }

    public string LastName { get; set; }

    public DateTime? Birthday { get; set; }

    public bool Fired { get; set; }

    public EmployeeStage Stage { get; set; }

    public ObservableCollection<EmployeeStage> Stages
    {
        get
        {
            return new ObservableCollection<EmployeeStage>(Context.GetEmployeeStages());
        }
    }

    private ICommand _saveCommand;
    public ICommand SaveCommand
    {
        get
        {
            if (_saveCommand == null)
            {
                _saveCommand = new RelayCommand(action =>
                {
                    if (Service.IsValid)
                    {
                        var vm = action as EmployeeViewModel;
                        Context.UpdateEmployee(vm.EmployeeId, vm.FirstName, vm.LastName, vm.Birthday, vm.Fired, vm.Stage);
                        Service.CloseActiveWindow(true);
                    }
                });
            }

            return _saveCommand;
        }
    }
        
    public string Error
    {
        get { return null; }
    }

    public string this[string columnName]
    {
        get
        {
            if (columnName == "FirstName")
            {
                if (string.IsNullOrEmpty(this.FirstName))
                {
                    return "Значение не должно быть пустым";
                }
            }

            if (columnName == "LastName")
            {
                if (string.IsNullOrEmpty(this.LastName))
                {
                    return "Значение не должно быть пустым";
                }
            }

            if (columnName == "Stage")
            {
                if (this.Stage == null || !new[] { "10", "20" }.Contains(this.Stage.Value))
                {
                    return "Значение должно быть 10 или 20";
                }
            }

            if (columnName == "Birthday")
            {
                if (this.Birthday == null || this.Birthday > DateTime.Today)
                {
                    return "Значение должно быть меньше сегодняшней даты";
                }
            }
                

            return null;
        }
    }
}

...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38469959
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей КТам экономия не тупая, а вполне реальная.
Какая такая реальная? :) Ты не согласен с постулатом, что у вью должна быть своя вью модель?Ты не согласен с вредом от маленькой ответственности класса? Ничего, что я вопросом на вопрос? :-)

МСУАлексей КЯ достаточно хапнул в своё время из-за этого "закона". :-)
Батенька, весь MVC крутится на этом законе и ничего, все довольны :)В веб этого архитектура требует.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38469963
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей К, вот честная валидация во вью модели с помощью нативщины IDataErrorInfo, чем она тебе плоха? :)

...
Код: c#
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.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
public class EmployeeViewModel : IDataErrorInfo
{
    private IDataContext Context;
    private IWindowService Service;

    public EmployeeViewModel()
    {
        Context = new DataContext(); // todo IoC resolve
        Service = new WindowService(); // todo IoC resolve
    }

    public int EmployeeId { get; set; }

    public string FirstName { get; set; }

    public string LastName { get; set; }

    public DateTime? Birthday { get; set; }

    public bool Fired { get; set; }

    public EmployeeStage Stage { get; set; }

    public ObservableCollection<EmployeeStage> Stages
    {
        get
        {
            return new ObservableCollection<EmployeeStage>(Context.GetEmployeeStages());
        }
    }

    private ICommand _saveCommand;
    public ICommand SaveCommand
    {
        get
        {
            if (_saveCommand == null)
            {
                _saveCommand = new RelayCommand(action =>
                {
                    if (Service.IsValid)
                    {
                        var vm = action as EmployeeViewModel;
                        Context.UpdateEmployee(vm.EmployeeId, vm.FirstName, vm.LastName, vm.Birthday, vm.Fired, vm.Stage);
                        Service.CloseActiveWindow(true);
                    }
                });
            }

            return _saveCommand;
        }
    }
        
    public string Error
    {
        get { return null; }
    }

    public string this[string columnName]
    {
        get
        {
            if (columnName == "FirstName")
            {
                if (string.IsNullOrEmpty(this.FirstName))
                {
                    return "Значение не должно быть пустым";
                }
            }

            if (columnName == "LastName")
            {
                if (string.IsNullOrEmpty(this.LastName))
                {
                    return "Значение не должно быть пустым";
                }
            }

            if (columnName == "Stage")
            {
                if (this.Stage == null || !new[] { "10", "20" }.Contains(this.Stage.Value))
                {
                    return "Значение должно быть 10 или 20";
                }
            }

            if (columnName == "Birthday")
            {
                if (this.Birthday == null || this.Birthday > DateTime.Today)
                {
                    return "Значение должно быть меньше сегодняшней даты";
                }
            }
                

            return null;
        }
    }
}

Не. Проще валидаторов на биндинги навешать. Оно и декларативно и независимо и тд и тп.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38470013
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КТы не согласен с вредом от маленькой ответственности класса? Ничего, что я вопросом на вопрос? :-)
Вред от модели представления? Батенька, гоню тебя ссаной метлой обратно в винформз - и выходя захлопни дверь!

Алексей КМСУБатенька, весь MVC крутится на этом законе и ничего, все довольны :)В веб этого архитектура требует.
С какого такого перепуга? Модель WebForms именно не требует, так как представление (aspx, ascx) жестко вяжется к кодбехайнду. И сделать нормальную слабосвязную реализацию довольно таки проблематично. Вообщем, полная аналогия затхлой винформзе. И тут приходят перцы из MS и говорят - испробуйте MVC печеньки, UI полностью отвязано от кодбехайнда, как в лучших домах Парижа и всё такое. Ну пипл поклевал, пощурился, напряг булки - да и давай с радости в вебформзятников какашками кидаться. Ну не счастье ли?

Алексей КНе. Проще валидаторов на биндинги навешать. Оно и декларативно и независимо и тд и тп.
То, что оно декларативно - это хорошо, но оно отдельно от модели представления, вот это основная жопа. Грубо говоря, дизайнеру должно быть фиолетово на твою логику с какими-то ошметками валидационных рулов. Ну это к слову, конечно, тут оно без фанатизма должно быть. Вью должно быть тупое, только маппинг на свойства и команды.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38470087
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей КТы не согласен с вредом от маленькой ответственности класса? Ничего, что я вопросом на вопрос? :-)
Вред от модели представления?Это одно из возможных решений, не более того. Не надо молиться на него. Фанатизм это плохо. Если его применить не по месту - будет вред.

МСУБатенька, гоню тебя ссаной метлой обратно в винформз - и выходя захлопни дверь! Я уйду... Останешься один на один со своими вьюмоделями...

МСУАлексей Кпропущено...
В веб этого архитектура требует.
С какого такого перепуга? Модель WebForms именно не требует, так как представление (aspx, ascx) жестко вяжется к кодбехайнду. И сделать нормальную слабосвязную реализацию довольно таки проблематично. Вообщем, полная аналогия затхлой винформзе. И тут приходят перцы из MS и говорят - испробуйте MVC печеньки, UI полностью отвязано от кодбехайнда, как в лучших домах Парижа и всё такое. Ну пипл поклевал, пощурился, напряг булки - да и давай с радости в вебформзятников какашками кидаться. Ну не счастье ли? Про вебформз пока ничего не знаю и знать не хочу. :-)

МСУАлексей КНе. Проще валидаторов на биндинги навешать. Оно и декларативно и независимо и тд и тп.
То, что оно декларативно - это хорошо, но оно отдельно от модели представления, вот это основная жопа. Грубо говоря, дизайнеру должно быть фиолетово на твою логику с какими-то ошметками валидационных рулов. Ну это к слову, конечно, тут оно без фанатизма должно быть. Вью должно быть тупое, только маппинг на свойства и команды.У меня нет задачи отделить дизайнера от программиста.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38470109
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КЭто одно из возможных решений, не более того. Не надо молиться на него. Фанатизм это плохо. Если его применить не по месту - будет вред.
Ну дельфи - это тоже один из способов решения задачи. Но у тебя от него мурашки по коже 15110408 , значит. Почему тогда мои мурашки по поводу валидации во вью не имеют место быть? Двойные стандарты?

Алексей КЯ уйду... Останешься один на один со своими вьюмоделями...
Не поверю, что вернешься опять в этот ад :)

Алексей КПро вебформз пока ничего не знаю и знать не хочу. :-)
Ок. Это я к слову о вебе. Веб многолик и чудесен :)

Алексей КУ меня нет задачи отделить дизайнера от программиста.
И тем не менее валидировать во вью - садомазахизм , IDataErrorInfo наше всё
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38470134
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ, а я валидирую в модели, т.к. она у меня используется в разных отображениях. и ничего. вьюмодел не последнее место для этого.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38470145
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей КЭто одно из возможных решений, не более того. Не надо молиться на него. Фанатизм это плохо. Если его применить не по месту - будет вред.
Ну дельфи - это тоже один из способов решения задачи. Но у тебя от него мурашки по коже 15110408 , значит. Почему тогда мои мурашки по поводу валидации во вью не имеют место быть? Двойные стандарты? Слишком радикально. :-)

МСУАлексей КЯ уйду... Останешься один на один со своими вьюмоделями...
Не поверю, что вернешься опять в этот ад :)Я же не сказал куда я пойду. :-)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38470154
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProgaМСУ, а я валидирую в модели, т.к. она у меня используется в разных отображениях. и ничего. вьюмодел не последнее место для этого.
Proga, я не запрещаю этого делать, можно и так. То, что у тебя вью используется в разных местах никак не влияет на факт обязательности рулов. С таким же успехом можно использовать и IDataErrorInfo. Появился с 3.5 фрейморка, универсален и является более общим. Более того, с версии FW 4.5 стал доступен INotifyDataErrorInfo. Лучше бы DataAnnotations вкорячили.

Вот старая статейка: Data Validation in 3.5
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38470157
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КСлишком радикально. :-)
Зато справедливо :)

Алексей КЯ же не сказал куда я пойду. :-)


P.S. Вообщем, IDataErrorInfo и баста, верь мне. Договорились? :)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38470179
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУДоговорились? :)Уболтал. :-)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38470305
netivan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУМСУВалидация во вью - это прошлый век и утопия. Немасштабируемо и негибко.
Даже новомодный MVC отказался от такой практики, которая была еще со времен монструозного неповоротливого WebForms. Описал логику с помощью IDataErrorInfo или DataAnnotations - получи автоматом бесплатную валидацию на клиенте. Так и в WPF - описал логику в IDataErrorInfo, получи нахаляву валидацию в XAML представлении. Красота. А писать валидацию в XAML - это возврат к эпохе динозавров аля валидаторы уровня представления ASP.NET WebForms
ну не совсем нахаляву шаблон "крсного кирпича" добавить надо. Но это тоже плюс - тут кто во что горазд.А вот ValidationRule мне не нравится - никакого фидбека во VM, что имхо очень странно.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38470315
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КУболтал. :-)
Неожиданно

netivanну не совсем нахаляву шаблон "крсного кирпича" добавить надо.
Зачем? Оно уже есть дефолтно, причем в MVC тоже (unobtrusive validation). Всё это добро отлично дружит с IDataErrorInfo. Да, мне кирпич не понравился, поэтому сделал отдельный стиль со звёздочкой справа поля.

netivanА вот ValidationRule мне не нравится - никакого фидбека во VM, что имхо очень странно.
+1, допотопный пушной зверёк, пришедший в WPF из далёкого 3 фреймворка...
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38470329
netivan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЗачем? Оно уже есть дефолтно, причем в MVC тоже (unobtrusive validation). Всё это добро отлично дружит с IDataErrorInfo. Да, мне кирпич не понравился, поэтому сделал отдельный стиль со звёздочкой справа поля. и в самом деле) всегда просто другой юзал. Но тем самым еще + к IdataError
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38470362
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУSeVaА нечего там комментировать. В прошлый раз смотрел бегло(очень опасно глубоко нырять, можно не отмыться потом), эта лошара даже единственную статью не осилила, сделала совершенно в тупую и даже не удосужилась реализовать полностью весь функционал. CanExecute всегда true.
Пионерская поделка без всякого смысла.
А нечем тебе комментировать ибо вместо башки у тебя помойное ведро. Это идеологический концепт и мне на данный момент не нужен CanExecute. Ты со своими обработчиками скоро слюной изойдешь, бездарность.

SeVaМуслима, большой мальчик, а до сих пор не знаешь, что сборка мусора совершенно не означает полную очистку. Где и кем ты работаешь?
Присаживайся, двойка. Весь .NET так работает, в том числе WinForms.

http://msdn.microsoft.com/ru-ru/library/system.gc.collect(v=vs.110).aspx GC.Collect принудительно запускает немедленную сборку мусора для всех поколений.


Ляпнул очередную глупость, впрочем как всегда. Если осталась хоть капля головного вещества, запусти тот же пример генерации объектов на WinForms и прибей форму. Память честно вернется на исходную позицию.

Monochromatiqueo_O

Так ты чморил SL ничего о нем не зная??
o_O

Так SL у нас уже стал XAML'ом?

1. Муслима, называй вещи своими именами - лисапед, который тянет только на концепт лабораторной работы.
Можешь представить, во что превратятся твои изобретения, если будет несколько сотен классов и форм.
Вместо нормального IoC и сервиса навигации, которые присутствуют в нормальных фреймворках, и которые ты не осилил,
две помойные ямы.
2. Сборка мусора тема для тебя неподъемная и я даже не буду ее затрагивать.
А winforms упомяну, тк ты здесь не раз пачкал другим мозги и на голубом глазу заявлял, что в нем на автомате делается отписка от событий. Это очередная твоя тупость, ничего подобного нет. Попробуй в статическом классе подписаться на событие и ты намертво прибьешь форму гвоздями. Все дело в том, что ты привык говнокодить с обработчиками в самой форме, посему все удалялось.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38470390
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netivanА вот ValidationRule мне не нравится - никакого фидбека во VM, что имхо очень странно.Пробежаться по визуальному дереву и найти есть ли Validation.GetHasError(element) == true не проблема. Или о каком фидбэке идёт речь?
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38470797
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVa1. Муслима, называй вещи своими именами - лисапед, который тянет только на концепт лабораторной работы.
Можешь представить, во что превратятся твои изобретения, если будет несколько сотен классов и форм.
Вместо нормального IoC и сервиса навигации, которые присутствуют в нормальных фреймворках, и которые ты не осилил,
две помойные ямы.
2. Сборка мусора тема для тебя неподъемная и я даже не буду ее затрагивать.
А winforms упомяну, тк ты здесь не раз пачкал другим мозги и на голубом глазу заявлял, что в нем на автомате делается отписка от событий. Это очередная твоя тупость, ничего подобного нет. Попробуй в статическом классе подписаться на событие и ты намертво прибьешь форму гвоздями. Все дело в том, что ты привык говнокодить с обработчиками в самой форме, посему все удалялось.
1. Долбосев, я и стараюсь называть вещи своими именами. Просто у тебя опять кончились мозги для того, чтобы осилить факт наличия IoC и сервиса окон (IDataContext и IWindowService). Эти сервисы там есть и только через них идет вся работа, дурилко картонное. Ты как не умел читать код, так и не научился. Читаешь, видимо, задницей и задаешь много тупых вопросов.
2. Не смеши мои носки по поводу сборки мусора, ты сольёшь эту тему через 5 минут дискуссии очередными жалкими потугами, типа мембершипов и генераций сборок в памяти. Уж не позорился бы, клоун. Во-вторых, причем тут подписка на событие в статическом классе? Где у меня в WPF и WinForms статика? Я не сомневаюсь, что в твоих нетленках одна статика, но тем ты и чудесен, что являешься обычной тупой обезьяной без грамма ума и фантазии.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38470801
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КПробежаться по визуальному дереву и найти есть ли Validation.GetHasError(element) == true не проблема. Или о каком фидбэке идёт речь?
Ну и еще рекурсивно пробежаться по всем чилдам через:
Код: c#
1.
LogicalTreeHelper.GetChildren(instance).OfType<DependencyObject>().All(child => RecursiveValidate(child))
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38470811
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не понятно, почему не сделали в WPF что-то типа этого . Вызываешь в модели представления ModelState.IsValid и получаешь ответ. Приходится писать что-то типа этого 15159049 .
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38470856
netivan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

и мне это непонятно. Чтобы пробежаться по дереву надо иметь всегда ссылку на свою View. А это в моем логике невозможно). Поэтому не вижу повода уходить от DataErrorInfo.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38470874
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netivanЧтобы пробежаться по дереву надо иметь всегда ссылку на свою View. А это в моем логике невозможно).
Я выкрутился так, собственно в начале и писал об этом:

Код: c#
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.
public class WindowService : IWindowService
{
    public Window ActiveWindow { get { return Application.Current.Windows.OfType<Window>().SingleOrDefault(x => x.IsActive); } }

    private bool Validate(DependencyObject instance)
    {
        return !Validation.GetHasError(instance) && LogicalTreeHelper.GetChildren(instance).OfType<DependencyObject>().All(child => Validate(child));
    }

    public bool IsValid { get { return Validate(ActiveWindow); } }        

    public EmployeeViewModel OpenEmployeeDetailWindow(Employee employee)
    {
        var view = new EmployeeDetailWindow();
        view.Owner = ActiveWindow;
        var vm = new EmployeeViewModel 
        { 
            EmployeeId = employee.EmployeeId, 
            FirstName = employee.FirstName, 
            LastName = employee.LastName, 
            Birthday = employee.Birthday,
            Fired = employee.Fired,
            Stage = employee.Stage 
        };
        view.DataContext = vm;
        return view.ShowDialog() == true ? vm : null;
    } 
}



А уже из ICommand родительского окна через инверсию ты обращаешься к IWindowService. Таким образом, очень удобно писать mvvm. Если нужно вмешательство к визуальным элементам, ты это делаешь через слабосвязанный IWindowService.

Вот, например, нужно по кликам на дереве обновлять на лету грид:

view
Код: xml
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.
<Grid>
    <TreeView Name="departmentsTree" ItemsSource="{Binding DepartmentsTopLevel}" HorizontalAlignment="Left" Width="232">
        <TreeView.ItemTemplate>
            <HierarchicalDataTemplate ItemsSource="{Binding Childrens}">
                <TextBlock Text="{Binding Title}"/>
            </HierarchicalDataTemplate>
        </TreeView.ItemTemplate>
        <TreeView.ItemContainerStyle>
            <Style>
                <Setter Property="TreeViewItem.IsExpanded" Value="True"></Setter>
            </Style>
        </TreeView.ItemContainerStyle>
    </TreeView>
    <DataGrid ItemsSource="{Binding Path=Employees}" AutoGenerateColumns="False" CanUserAddRows="False" Margin="237,0,0,0">
        <DataGrid.Columns>
            <DataGridTextColumn IsReadOnly="True" Header="Фамилия" Binding="{Binding LastName}" Width="100" />
            <DataGridTextColumn IsReadOnly="True" Header="Имя" Binding="{Binding FirstName}" Width="150" />
            <DataGridTextColumn IsReadOnly="True" Header="Дата рождения" Binding="{Binding Birthday, StringFormat=\{0:dd.MM.yyyy\}}" Width="100">
                <DataGridTextColumn.CellStyle>
                    <Style>
                        <Setter Property="TextBlock.TextAlignment" Value="Center"/>
                    </Style>
                </DataGridTextColumn.CellStyle>
            </DataGridTextColumn>
        </DataGrid.Columns>
    </DataGrid>
</Grid>



view model
Код: c#
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.
43.
44.
45.
46.
47.
public class OrganizationViewModel : ViewModelBase
{
    public IDataContext Context;
    public IWindowService Service;

    public OrganizationViewModel()
    {
        Context = new DataContext(); // todo IoC resolve
        Service = new WindowService(); // todo IoC resolve
    }
       
    public IEnumerable<Department> DepartmentsTopLevel
    {
        get
        {
            return Context.GetDepartments().Where(d => d.Id == 0);
        }
    }

    private Department _currentDepartment;
    public Department CurrentDepartment
    {
        get
        {
            return _currentDepartment;
        }
        set
        {
            _currentDepartment = value;
            OnPropertyChanged(() => CurrentDepartment);
        }
    }

    private ObservableCollection<Employee> _employees;
    public ObservableCollection<Employee> Employees
    {
        get
        {
            return _employees;
        }
        set
        {
            _employees = value;
            OnPropertyChanged(() => Employees);
        }
    }
}



оконный сервис
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
public void OpenOrganizationWindow()
{
    var view = new OrganizationWindow();
    view.Owner = ActiveWindow;
    var vm = new OrganizationViewModel();
    view.DataContext = vm;
    var tree = (TreeView)view.FindName("departmentsTree");            
           
    tree.SelectedItemChanged += delegate(object sender, RoutedPropertyChangedEventArgs<object> e)
    {                                
        vm.CurrentDepartment = e.NewValue as Department;
        var employees = vm.Context.GetEmployees().Where(d => d.Department.Id == vm.CurrentDepartment.Id);
        vm.Employees = new ObservableCollection<Employee>(employees);
    };

    view.Show();
    view.Closed += (a, b) => { Application.Current.MainWindow.Focus(); };
}

...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38470884
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, очень расстроился, что в WPF до сих пор нет поддержки ICommand в EventTrigger. Так ты сразу намапился в команду из TreeView и делов. Или можно через InvokeCommandAction из System.Windows.Interactivity?
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38470899
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУИли можно через InvokeCommandAction из System.Windows.Interactivity?
Отлично, так работает! Можно убирать гавнокод с SelectedItemChanged из IWindowService :)

Код: xml
1.
xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"



Код: xml
1.
2.
3.
4.
5.
<i:Interaction.Triggers>
                <i:EventTrigger EventName="SelectedItemChanged">
                    <i:InvokeCommandAction Command="{Binding SelectedItemChangedCommand}" />
                </i:EventTrigger>
</i:Interaction.Triggers>
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38470903
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей КПробежаться по визуальному дереву и найти есть ли Validation.GetHasError(element) == true не проблема. Или о каком фидбэке идёт речь?
Ну и еще рекурсивно пробежаться по всем чилдам через:
Код: c#
1.
LogicalTreeHelper.GetChildren(instance).OfType<DependencyObject>().All(child => RecursiveValidate(child))

Ну само собой пройти по всему дереву. Вообще не проблема.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38470904
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУИли можно через InvokeCommandAction из System.Windows.Interactivity?Да.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38470930
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КМСУИли можно через InvokeCommandAction из System.Windows.Interactivity?Да.
Тогда я вообще не понимаю, кули ты прибил свой моцк к этому кодебехайнду :) Онли mvvm, не?
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38470937
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей Кпропущено...
Да.
Тогда я вообще не понимаю, кули ты прибил свой моцк к этому кодебехайнду :) Онли mvvm, не?Может, я не умею делать MVVM? :-)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38470938
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КМожет, я не умею делать MVVM? :-)
Троллишь?
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38470944
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей КМожет, я не умею делать MVVM? :-)
Троллишь? Иногда можно.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38470946
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КИногда можно.
Вообщем, задача: пересадить нечестный РЖД на честный MVVM
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38470979
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей КИногда можно.
Вообщем, задача: пересадить нечестный РЖД на честный MVVM У меня и так всё MVVM, только в моём его понимании. Так что не надо тут! :-)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38470995
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КУ меня и так всё MVVM, только в моём его понимании. Так что не надо тут! :-)
15108719 ???

...


...
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38471007
netivan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

используй EventToCommand из MvvmLight. Там есть очень полезная штука -
Код: c#
1.
 EventToArgs=true


:)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38471010
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей КУ меня и так всё MVVM, только в моём его понимании. Так что не надо тут! :-)
15108719 ???Это ничему не противоречит. Я считаю CodeBehind/XAML - одной из разновидностей пар ViewModel/View.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38471013
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netivanМСУ,
используй EventToCommand из MvvmLight. Там есть очень полезная штука -
Код: c#
1.
 EventToArgs=true


:)Проще свой написать. Там работы на 5 минут. :-)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38471020
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КЯ считаю CodeBehind/XAML - одной из разновидностей пар ViewModel/View.
Жжешь, мужик :)

P.S. Кодбехайнд - это часть View, никакого отношения к модели представления не относится, 100%. Верь мне.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38471024
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей КЯ считаю CodeBehind/XAML - одной из разновидностей пар ViewModel/View.
Жжешь, мужик :)

P.S. Кодбехайнд - это часть View, никакого отношения к модели представления не относится, 100%. Верь мне.Ну мне так нравится. Жалко что ли? :-)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38471026
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netivanМСУ,

используй EventToCommand из MvvmLight. Там есть очень полезная штука -
Код: c#
1.
 EventToArgs=true


:)
В топку все эти левые тулкиты :) Тем более, зачем мне левый EventToCommand, если есть штатный InvokeCommandAction.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38471030
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КНу мне так нравится. Жалко что ли? :-)
Ну не то, чтобы жалко, но немного обидно
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38471034
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей КНу мне так нравится. Жалко что ли? :-)
Ну не то, чтобы жалко, но немного обидно За архитекторов-неудачников из Микрософта? :-)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38471044
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КЗа архитекторов-неудачников из Микрософта? :-)
Вообщем, не спорь, Лёша. А возьми и перепиши
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38471050
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей КЗа архитекторов-неудачников из Микрософта? :-)
Вообщем, не спорь, Лёша.А я и не спорю. Я высказываю своё мнение. :-)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38471058
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУИ вообще, ты сначала закончи и внедри в промышленную эксплуатацию морду, содержащую хотя бы 50+ форм. Потом вернёмся к твоим ВьюМоделям. :-)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38471059
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К, что по поводу этого 15148675 ? :)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38471063
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КИ вообще, ты сначала закончи и внедри в промышленную эксплуатацию морду, содержащую хотя бы 50+ форм. Потом вернёмся к твоим ВьюМоделям. :-)
Согласен. Четкий выпад, сказать по сути нечего :)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38471064
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей К, что по поводу этого 15148675 ? :)А я не понял, что там не так? Ну напиши свой если стандартный не нравится. Там работы на пару дней.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38471067
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей КИ вообще, ты сначала закончи и внедри в промышленную эксплуатацию морду, содержащую хотя бы 50+ форм. Потом вернёмся к твоим ВьюМоделям. :-)
Согласен. Четкий выпад, сказать по сути нечего :)По сути всё сказано. У меня нет необходимости в независимом от UI-библиотеки слое UI-логики. Всё остальное - следствие.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38471070
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КМСУАлексей К, что по поводу этого 15148675 ? :)А я не понял, что там не так? Ну напиши свой если стандартный не нравится. Там работы на пару дней.
Не так там вот этот watermark "Select a date", который даже никак не дружит с локалью. Бесит просто ужос.
Задача - просто убрать его. Писать свой контрол, разумеется, нет никакого желания. Рукожопный выход:

Код: c#
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.
// App.xaml.cs
public App()
{
    EventManager.RegisterClassHandler(typeof(DatePicker), DatePicker.LoadedEvent, new RoutedEventHandler(DatePicker_Loaded));
}

void DatePicker_Loaded(object sender, RoutedEventArgs e)
{
    var dp = sender as DatePicker;
    if (dp == null) return;

    var tb = GetChildOfType<DatePickerTextBox>(dp);
    if (tb == null) return;

    var wm = tb.Template.FindName("PART_Watermark", tb) as ContentControl;
    if (wm == null) return;

    wm.Content = "                   ";
}

public T GetChildOfType<T>(DependencyObject depObj) where T : DependencyObject
{
    if (depObj == null) return null;

    for (int i = 0; i < VisualTreeHelper.GetChildrenCount(depObj); i++)
    {
        var child = VisualTreeHelper.GetChild(depObj, i);

        var result = (child as T) ?? GetChildOfType<T>(child);
        if (result != null) return result;
    }
    return null;
}
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38471071
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КПо сути всё сказано. У меня нет необходимости в независимом от UI-библиотеки слое UI-логики. Всё остальное - следствие.
Тогда чем тебе не устроило доброе старое "button click" программирование?
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38471077
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей КПо сути всё сказано. У меня нет необходимости в независимом от UI-библиотеки слое UI-логики. Всё остальное - следствие.
Тогда чем тебе не устроило доброе старое "button click" программирование?Таки возможности WPF весьма полезны. Но при этом и про button_Click забывать не стоит.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38471085
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУНе так там вот этот watermark "Select a date", который даже никак не дружит с локалью. Бесит просто ужос.
Задача - просто убрать его. Писать свой контрол, разумеется, нет никакого желания.Таки стоит. Стандартный DatePicker никуда не годится.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38471125
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вклинюсь в ваш диалог друзья, почитал про datetimepicker. у девок он вроде неплохой, я его юзаю. да, денежку надо платить. самому в лом писать такие глупости, надо делом заниматься.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38471130
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Progaвклинюсь в ваш диалог друзья, почитал про datetimepicker. у девок он вроде неплохой, я его юзаю. да, денежку надо платить. самому в лом писать такие глупости, надо делом заниматься.С другой стороны, это хорошая задача для ознакомления с WPF.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38471154
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КТаки стоит. Стандартный DatePicker никуда не годится.
А чем он плох?
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38471163
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей КТаки стоит. Стандартный DatePicker никуда не годится.
А чем он плох?Не помню уже. :-)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38471183
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КНе помню уже. :-)
Ну нормально. Нужно переписывать, значит
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38471201
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей КНе помню уже. :-)
Ну нормально. Нужно переписывать, значит "Верь мне" (ц)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38471213
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К, ок )
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38471571
gpu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КМСУпропущено...

А чем он плох?Не помню уже. :-)
i18n, cut and paste, etc..
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38471606
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gpui18n
Это есть, поменяй просто культуру треда.

gpucut and paste
Работает.

gpuetc..
Мало, давай еще.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38472184
gpu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУgpui18n
Это есть, поменяй просто культуру треда.

Поменять просто, остальное нет.

МСУgpucut and paste
Работает.

Возьми ексел с датами в разных языках, японский, немецкий, русский

Хотя стоп, чистый впф контрол я уже давно не использовал, может проблема в Телерике.
Ну наши индусы как раз сейчас с етим разбираются, посмотрим.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38472344
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gpuПоменять просто, остальное нет.
Говоришь загадками. Что есть "остальное"?

gpuХотя стоп, чистый впф контрол я уже давно не использовал, может проблема в Телерике.
Может быть, речь о нативном DatePicker.

P.S. Друзья, таки жду адекватных аргументов по поводу унылости датепискера.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38473510
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Alex_studenticu, 10 июл 13, 23:00 [14549561]
>... при выделении строки в DataGrid получить её содержимое?

Не знаю как в WPF, а в Silverlight 5, так работает
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
. . .  
<sdk:DataGrid AutoGenerateColumns="False" Height="283" HorizontalAlignment="Left" 
        ItemsSource="{Binding ElementName=tbl_Темы_DomainDataSource, Path=Data}" 
        Margin="42,29,0,0"
        Name="dgr_Темы" RowDetailsVisibilityMode="VisibleWhenSelected" VerticalAlignment="Top" 
        Width="323" CurrentCellChanged="dgr_Темы_CurrentCellChanged" CellEditEnded="dgr_Темы_CellEditEnded" 
        SelectionChanged="dgr_Темы_SelectionChanged" RowEditEnded="dgr_Темы_RowEditEnded" Grid.RowSpan="2">
   <sdk:DataGrid.Columns>
       <sdk:DataGridTextColumn x:Name="str_НазваниеColumn" Binding="{Binding Path=str_Название}" Header="Темы" Width="300" />
   </sdk:DataGrid.Columns>
</sdk:DataGrid>
. . .

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
//-- Добавить клон
//================
private void btn_Клон_Click(object sender, RoutedEventArgs e) {
  //-- Запись для клонирования выбрана ?
  tbl_Темы cls = (tbl_Темы)dgr_Темы.SelectedItem; 
  if (cls != null) { //-- Да
    string xstr = cls.str_Название;
. . . 

С уважением, Владимир
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38473547
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что это за жуть? SelectedItem вполне себе биндится на свойство вью модели.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38473832
netivan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУЧто это за жуть? SelectedItem вполне себе биндится на свойство вью модели.
товарищч видимо не используют модель)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38473889
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netivanтоварищч видимо не используют модель)
Уволить без выплаты материального пособия :)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38474225
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>netivan, сегодня, 10:21 [15172412]
>товарищч видимо не используют модель)

Использую это:
Пошаговое руководство. Использование шаблона бизнес-приложения Silverlight
WCF RIA Services
http://msdn.microsoft.com/ru-ru/library/ee707360(v=VS.91).aspx

Привожу картинку обозревателя решений.
Может делаю что-то не так, подскажите, люблю учиться.

С уважением, Владимир.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38474488
Фотография EDUARD SAPOTSKI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеевМожет делаю что-то не так, подскажите, люблю учиться.
Нормально все.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38474534
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Эдик решает
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38474582
netivan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев,

просто не используете MVVM подход.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38474756
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Друзья, так что, пятничного срача не будет?
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38476455
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
выбор IoC

Чмо, отморозило очередную хрень.
Поставь задержку в говносервисе
Я понимаю еще DI ему не посилен, но незнание элементарных вещей о том, что
приложения wpf - модель однопоточного апартамента (single-threaded apartment — STA).
Я не поленился и добавил задержку employeeviewmodel, чмо убогое, попробуй сделать еще что-нибудь,
когда будет открываться форма для сотрудника.
ViPros дал тебе правильный совет. Читай сначала буквари для чайников, а потом уже лезь со свинным рылом
в калашный ряд.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38476463
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVa выбор IoC

Чмо, отморозило очередную хрень.
Поставь задержку в говносервисе
Я понимаю еще DI ему не посилен, но незнание элементарных вещей о том, что
приложения wpf - модель однопоточного апартамента (single-threaded apartment — STA).
Я не поленился и добавил задержку employeeviewmodel, чмо убогое, попробуй сделать еще что-нибудь,
когда будет открываться форма для сотрудника.
ViPros дал тебе правильный совет. Читай сначала буквари для чайников, а потом уже лезь со свинным рылом
в калашный ряд.
Ты идиот? Я же сказал, не преследую цель распараллелить. Если бы преследовал, написал бы что-нибудь типа того:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
public void OpenEmployeesWindow()
{
    var view = new EmployeesWindow();
    view.Owner = ActiveWindow;

    EmployeesViewModel vm = null;
    view.Dispatcher.BeginInvoke(DispatcherPriority.Background, new Action(() =>
    {
        vm = new EmployeesViewModel(App.Container);
        view.DataContext = vm;
    }));

    view.Closed += (a, b) => { vm.Dispose(); Application.Current.MainWindow.Focus(); };
    view.Show();
}



Убей себя.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38476609
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУSeVa выбор IoC

Чмо, отморозило очередную хрень.
Поставь задержку в говносервисе
Я понимаю еще DI ему не посилен, но незнание элементарных вещей о том, что
приложения wpf - модель однопоточного апартамента (single-threaded apartment — STA).
Я не поленился и добавил задержку employeeviewmodel, чмо убогое, попробуй сделать еще что-нибудь,
когда будет открываться форма для сотрудника.
ViPros дал тебе правильный совет. Читай сначала буквари для чайников, а потом уже лезь со свинным рылом
в калашный ряд.
Ты идиот? Я же сказал, не преследую цель распараллелить. Если бы преследовал, написал бы что-нибудь типа того:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
public void OpenEmployeesWindow()
{
    var view = new EmployeesWindow();
    view.Owner = ActiveWindow;

    EmployeesViewModel vm = null;
    view.Dispatcher.BeginInvoke(DispatcherPriority.Background, new Action(() =>
    {
        vm = new EmployeesViewModel(App.Container);
        view.DataContext = vm;
    }));

    view.Closed += (a, b) => { vm.Dispose(); Application.Current.MainWindow.Focus(); };
    view.Show();
}



Убей себя.

1. Муфлон, брось свои голубые мультики и не води жалом, когда я тебя тыкал носом в код, ты не словом не обмолвился о dispatcher.
2. Прежде, чем постить очередную хрень, чайникам лучше ее протестировать. Эта полова даже работать не будет, великий знаток wpf и многопоточности забыл EndInvoke. Читай буквари, чмо позорное.
3. Чувствуется рука великого говнокодера, оно даже забыло поставить обработку ошибок при вызове сервиса.
муслима, очень любопытно посмотреть на очередную кучу говна для сообщения об ошибке пользователю с возможность повтора.

Это поделка.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38476656
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVa1. Муфлон, брось свои голубые мультики и не води жалом, когда я тебя тыкал носом в код, ты не словом не обмолвился о dispatcher.
2. Прежде, чем постить очередную хрень, чайникам лучше ее протестировать. Эта полова даже работать не будет, великий знаток wpf и многопоточности забыл EndInvoke. Читай буквари, чмо позорное.
3. Чувствуется рука великого говнокодера, оно даже забыло поставить обработку ошибок при вызове сервиса.
муслима, очень любопытно посмотреть на очередную кучу говна для сообщения об ошибке пользователю с возможность повтора.
1. Долбосева, какое жало, я тебе объяснил, что не ставлю задачу рассинхронизации. Зачем ты её приплёл, ты дурак?
2. Не будет работать без EndInvoke? Ну ты бестолочь Читай, дурилко картонное: http://msdn.microsoft.com/ru-ru/magazine/cc163328.aspx
3. Ты как был жалким червяком, так им и остался.

SeVaЭто поделка.
Убей себя. Ты опять обосрался.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38476831
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чмо, Dispatcher.BeginInvoke ты блокируешь dispatcher.
Сделал по твоим рекомендациям(сам ты боишься обосраться), ни фига не работает(форма залипает пока не закончится задержка во конструкторе viewmodel).

Попробуй пукнуть и заставить эту поделку работать как надо. И не забудь добавить запрос пользователю на повтор(без этого даже лабораторную работу не примут).
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38476855
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVaЧмо, Dispatcher.BeginInvoke ты блокируешь dispatcher.
Сделал по твоим рекомендациям(сам ты боишься обосраться), ни фига не работает(форма залипает пока не закончится задержка во конструкторе viewmodel).

Попробуй пукнуть и заставить эту поделку работать как надо. И не забудь добавить запрос пользователю на повтор(без этого даже лабораторную работу не примут).

Тварь, BeginInvoke является асинхронным, поэтому после его вызова управление немедленно возвращается вызывающему объекту. Читай матчасть. Если поступило несколько вызовов BeginInvoke с одним DispatcherPriority, они выполняются в порядке поступления. Если нужна полная рассинхронизация, то поможет только вынос логики в отдельный поток. Твоя кретинская тупость неистребима.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38476911
Фотография Шайтан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУДрузья, так что, пятничного срача не будет?зато есть нормальный понедельничный
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38476917
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ШайтанМСУДрузья, так что, пятничного срача не будет?зато есть нормальный понедельничный
Ну с долбосевой это не срач, это очередное выливание ушата помоем на его бестолковую голову
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38477080
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУSeVaЧмо, Dispatcher.BeginInvoke ты блокируешь dispatcher.
Сделал по твоим рекомендациям(сам ты боишься обосраться), ни фига не работает(форма залипает пока не закончится задержка во конструкторе viewmodel).

Попробуй пукнуть и заставить эту поделку работать как надо. И не забудь добавить запрос пользователю на повтор(без этого даже лабораторную работу не примут).

Тварь, BeginInvoke является асинхронным, поэтому после его вызова управление немедленно возвращается вызывающему объекту. Читай матчасть. Если поступило несколько вызовов BeginInvoke с одним DispatcherPriority, они выполняются в порядке поступления. Если нужна полная рассинхронизация, то поможет только вынос логики в отдельный поток. Твоя кретинская тупость неистребима.

Забыл аттач
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38477195
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Убогий, ушел учить матчасть? Ты опять в теплом и мягком.
авторИспользование класса Dispatcher
Класс Dispatcher предоставляет шлюз для сбора сообщений в WPF и механизм маршрутизации работы для обработки потока пользовательского интерфейса. Это необходимо для соблюдения требований соответствия потоков, но, поскольку поток интерфейса пользователя блокирован для каждой части работы, управляемой через Dispatcher, важно, чтобы работы, выполняемые классом Dispatcher, были небольшими по объему и выполнялись быстро . Для этого лучше большие фрагменты обработки пользовательского интерфейса разбить на небольшие дискретные блоки, обрабатываемые классом Dispatcher. Все части работы, которые нет необходимости обрабатывать в потоке пользовательского интерфейса, необходимо вывести в другие потоки для обработки в фоновом режиме.


Dispatcher предназначен не для запуска потоков,а для того, чтобы они могли обновлять UI.
Поток для UI один и своим ламерскими предложениями ты вешаешь все приложение.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38477261
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чудило на букву М, и где тут нужен EndInvoke? Эта длительная задержка снимается отдельным тредом, я уже писал об этом выше. Диспетчер работает в текущем потоке.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38477305
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУЧудило на букву М, и где тут нужен EndInvoke? Эта длительная задержка снимается отдельным тредом, я уже писал об этом выше. Диспетчер работает в текущем потоке.

Позор РЖД, у тебя каша в голове. Диспетчер не работает в текущем потоке, он упорядочивает(ставит в очередь) вывод в UI из внешних потоков.
Ты опять водишь своим жалом. Ты убедился, что твой говноконцепт с предложенным тобой говнорешением через Dispatcher для длительных операций не работает? Или ты опять будешь включать МСУ в очередной раз?
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38477327
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVaМСУЧудило на букву М, и где тут нужен EndInvoke? Эта длительная задержка снимается отдельным тредом, я уже писал об этом выше. Диспетчер работает в текущем потоке.

Позор РЖД, у тебя каша в голове. Диспетчер не работает в текущем потоке, он упорядочивает(ставит в очередь) вывод в UI из внешних потоков.
Ты опять водишь своим жалом. Ты убедился, что твой говноконцепт с предложенным тобой говнорешением через Dispatcher для длительных операций не работает? Или ты опять будешь включать МСУ в очередной раз?
Позор Почте России, диспетчер работает в текущем потоке и может синхронизировать асинхронные блоки, дурилка картонная. Читай матчать. Так как в твоей дерьмозадаче поможет EndInvoke? И кстати, EndInvoke чего, диспетчера? Ты уже в своем же детьми запутался.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38477328
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://msdn.microsoft.com/ru-ru/library/system.windows.threading.dispatcher.begininvoke(v=vs.110).aspx
Выполняет делегат асинхронно, в потоке, с которым связанDispatcher.

Долбосева, и снова ты обосрался. Сколько можно уже позориться?
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38477381
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVa, убей себя от TPL, тупая блондинка из Почты России . На борщ-то хватает?
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38477390
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таким образом получаем нечто такое: http://codearticles.ru/articles/2420
Собственно, я вот тут в самом начале еще говорил 15186230 , что для полной рассинхронизации понадобится отдельный тред. Игры с диспетчером для таких задач не стоят свеч.
Если есть что добавить по делу, говори. Если захочешь снова попоносить, то лучше закрой глотку, прожуй это и сглотни.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38477442
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Через два дня, чмо узнало, что нужен отдельный тред. До этого оно считало, что Dispatcher этим занимается.
Тупая блондинка, где ты подобрала "для полной рассинхронизации "? Про асинхронность твоя ничего не слышала?
А теперь еще добавь обработку ошибок, показ сообщения пользователю и повтор, попробуй это сделать без тасков и сахара, может, через год до тебя дойдет зачем нужен был rx. У тебя самый простой случай, подобных вызовов может быть пачка.
Потом посмотришь во что превратится твой конструктор. Только идиот может придумать подобное.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38477449
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVaЧерез два дня, чмо узнало, что нужен отдельный тред. До этого оно считало, что Dispatcher этим занимается.
Тупая блондинка, где ты подобрала "для полной рассинхронизации "? Про асинхронность твоя ничего не слышала?
А теперь еще добавь обработку ошибок, показ сообщения пользователю и повтор, попробуй это сделать без тасков и сахара, может, через год до тебя дойдет зачем нужен был rx. У тебя самый простой случай, подобных вызовов может быть пачка.
Потом посмотришь во что превратится твой конструктор. Только идиот может придумать подобное.
Употорая истеричка будет любой код распараллеливать, лишь бы было асинхронно. Учи TPL, бестолочь. Это тебе не убогий Reactive Extensions. Я тебе десять раз уже сказал, что мне в данном случае не нужна рассинхронизация и цель эта не преследуется. Устроит работа в текущем потоке без каких-либо дополнений. Долгая загрузка или фриз окна расценивается как баг и устраняется отдельными инструкциями. Писать 100% параллельный код может только такой кретин, как ты. Покойся с миром.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38477491
тутешня
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SeVa, МСУ

Дівчата, та годі вам вже сваритися!
Подивіться навколо, скільки парубків гарненьких - гайда до них залицятися!
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38477502
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чмо, в РЖД тебя могут использовать только в качестве шпалы(по деревянности с тобой никто не сравнится). А Слушать будешь ты(шум проходящих поездов), а твой скрип никому не интересен.

За TPL можешь даже не браться, ты опять обосрался
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Task.Factory.StartNew(() =>
        {
            // Long operation
            vm.Load();

            // UI update
            string id = Thread.CurrentThread.ManagedThreadId.ToString();
            view.Dispatcher.Invoke(DispatcherPriority.Normal, new Action(() =>
            {
                view.Title = id;
            }));
        }).ContinueWith((t) =>
        {
            // Ок
        }, TaskScheduler.FromCurrentSynchronizationContext());



Можешь объяснить почему это говнокод, непонимание возможностей TPL и ты полный муфлон?
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38477505
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Галимая почтовая обезьяна, объяснить, почему ты - постсоветской высер? Сидишь с бабками в свой Почте России и ковыряешь нос рубанком. Ты хоть что-то внятно можешь сказать по делу? Очередное бессмысленный понос, по делу ноль. Впрочем вся твоя истеричная натура, пора тебя пороть плетью.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38477603
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лучше объясни почему такое чмо подпускают к клавиатуре. В РЖД нужны одни таджики?
В твоем говнокоде масло масляное, двойное переключение контекста синхронизации и лишний делегат с последующим вызовом.

Если бы что-то слышал про TPL, то был бы такой код
Код: c#
1.
2.
3.
4.
5.
6.
     var ui = TaskScheduler.FromCurrentSynchronizationContext();
    Task.Factory.StartNew(() =>{vm.Load();})
        .ContinueWith(t =>
        {
            view.Title = id;
        }, ui);




"Знаток TPL", можешь объяснить какие могут быть засады с StartNew, которых нет в rx?
Могу поспорить на щелбан, что не ответишь?
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38477611
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Муслима, пора sql.ru ставить тебя на счетчик и брать членские взносы.
Тебе тут коллективно вбивают через задний проход хоть какие-то знания, а сам ты не способен ничего
всосать.WPF,DI,tPL - это только знакомые для тебя буковки без всякого понимания сути.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38477677
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVaЛучше объясни почему такое чмо подпускают к клавиатуре. В РЖД нужны одни таджики?
В твоем говнокоде масло масляное, двойное переключение контекста синхронизации и лишний делегат с последующим вызовом.

Если бы что-то слышал про TPL, то был бы такой код
Код: c#
1.
2.
3.
4.
5.
6.
     var ui = TaskScheduler.FromCurrentSynchronizationContext();
    Task.Factory.StartNew(() =>{vm.Load();})
        .ContinueWith(t =>
        {
            view.Title = id;
        }, ui);




"Знаток TPL", можешь объяснить какие могут быть засады с StartNew, которых нет в rx?
Могу поспорить на щелбан, что не ответишь?

Только такому кретину как ты невдомек, что нет никаких двойных переключений, есть текущий контекст в новой задаче. Примерно так же , только без CancellationToken. Но в Почте России этого не понимают, поэтому тебе дальше приходится ковыряться в говне типа RX и строить из себя умную макаку. Ну-ка расскажи мне, чем же так опасна передача текущего контекста в задачу, тварь?
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38477679
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVaМуслима, пора sql.ru ставить тебя на счетчик и брать членские взносы.
Тебе тут коллективно вбивают через задний проход хоть какие-то знания, а сам ты не способен ничего
всосать.WPF,DI,tPL - это только знакомые для тебя буковки без всякого понимания сути.
Чумная обезьянка, где пример с EndInvoke 15185499 , в котором всё "будет работать"? Ты просто половая швабра - ляпнула глупость, а теперь краснеет в кустах.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38477827
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К, выложил готовую демку: http://codearticles.ru/articles/2421

Комментарии и критика приветствуются :)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38477879
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУвыложил готовую демкуПока некогда, потом посмотрю, ок? :-)

Я тут тоже выложил демку: www.ss-pro.ru . Мануал ещё не доделан, будет дорабатываться. В тексте возможны синтаксические ошибки, буду ещё править. Но кое что уже можно посмотреть. Это мой первый опыт подобного рода, так что не судите строго. :-)

netivanКак и обещал , даю ссылку на "асинхронности" .
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38477892
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КПока некогда, потом посмотрю, ок? :-)
Ок :) Только ставь нормальную 12 -13 студию, а то делать проект под старпёрскую десятку честно ломает

Алексей КЯ тут тоже выложил демку: www.ss-pro.ru . Мануал ещё не доделан, будет дорабатываться. В тексте возможны синтаксические ошибки, буду ещё править. Но кое что уже можно посмотреть. Это мой первый опыт подобного рода, так что не судите строго. :-)
О как, целый HTML5 DocType, целый MVC, а ты вью готовишь на каких-то html файлах :) А так молодца, свой сайт это кул!
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38477897
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУКомментарии и критика приветствуются :)Зачем столько окошек. Почему не Tabbed MDI? Делается за 5 минут.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38477902
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУА так молодца, свой сайт это кул!Пасиб. :-)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38477904
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На хостинге какие-то проблемы. Пишут "срок решения уточняется"...
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38477923
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КНа хостинге какие-то проблемы. Пишут "срок решения уточняется"...
Возьми нормальный хостинг на виртуальном vds сервере, минимальный тариф 499 рублей. Зато полноценный сервер, вся твоя дорогостоящая RAM и процессор. Ну и захостить можно всё что угодно, WCF сервисы, еще сайты, всё, что угодно.
http://www.parking.ru/vds/vds/

Алексей КМСУКомментарии и критика приветствуются :)Зачем столько окошек. Почему не Tabbed MDI? Делается за 5 минут.
В принципе не против, есть красивая болванка?
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38477943
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей КНа хостинге какие-то проблемы. Пишут "срок решения уточняется"...
Возьми нормальный хостинг на виртуальном vds сервере, минимальный тариф 499 рублей. Зато полноценный сервер, вся твоя дорогостоящая RAM и процессор. Ну и захостить можно всё что угодно, WCF сервисы, еще сайты, всё, что угодно.
http://www.parking.ru/vds/vds/ На www.1gb.ru пока работает. Там посмотрим. У меня доменное имя недавно зарегистрировано. Говорят из-за этого может пару дней с перебоями работать. Вроде заработало...

МСУАлексей Кпропущено...
Зачем столько окошек. Почему не Tabbed MDI? Делается за 5 минут.
В принципе не против, есть красивая болванка? Есть :-)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38477949
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Опаньки, так ты у нас совладелец бизнеса, милок? :)

http://www.ogrn.ru/info_egrul/company/264576c0af2 Учредители по данным ЕГРЮЛ на февраль 2012
- Пустыльников Владислав Анатольевич (доля участия - 34%)
- Дылыков Жаргал Лубсан-Доржиевич (доля участия - 33%)
- Кочетов Алексей Николаевич (доля участия - 33%)


И кстати, почему у Владика на 1% больше
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38477954
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КЕсть :-)
Благодарю. А есть отдельным проектом в отвязке от конкретного решения?
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38477993
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУОпаньки, так ты у нас совладелец бизнеса, милок? :)

http://www.ogrn.ru/info_egrul/company/264576c0af2 Учредители по данным ЕГРЮЛ на февраль 2012
- Пустыльников Владислав Анатольевич (доля участия - 34%)
- Дылыков Жаргал Лубсан-Доржиевич (доля участия - 33%)
- Кочетов Алексей Николаевич (доля участия - 33%)


И кстати, почему у Владика на 1% больше Тссс... Никому не говори. :-)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38478000
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей КЕсть :-)
Благодарю. А есть отдельным проектом в отвязке от конкретного решения?Неа, нету.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38478003
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как же моя любимая доменная аутентификация... :(
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38478005
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КНеа, нету.
Ну блин, расковыряй плз )
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38478006
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУА как же моя любимая доменная аутентификация... :(Там в мануале русским по белому написано, что не поддерживается. :-)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38478010
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей КНеа, нету.
Ну блин, расковыряй плз )Не могу пока, занят. )
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38478019
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КТам в мануале русским по белому написано, что не поддерживается. :-)
Ну так это же очень плохо, как считаешь? :)

Эх, красотища :) http://goo.gl/maps/hJFX9
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38478022
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей КТам в мануале русским по белому написано, что не поддерживается. :-)
Ну так это же очень плохо, как считаешь? :)

Эх, красотища :) http://goo.gl/maps/hJFX9 Ладно, хорош контору светить. :-)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38478030
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ок. Алексей, а в этом офисе кто трудится? :)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38478033
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУОк. Алексей, а в этом офисе кто трудится? :)Там серверная. :-)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38478035
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КМСУпропущено...

Ну так это же очень плохо, как считаешь? :)

Эх, красотища :) http://goo.gl/maps/hJFX9 Ладно, хорош контору светить. :-)

Кстати, только заметил. Внимательнее присмотрись вверх и увеличь, где провода над улицей проходят. Что это за невъебенная пчела-мамонт? Это у вас там такая куета по улицам летает? Стрёмно же
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38478044
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей Кпропущено...
Ладно, хорош контору светить. :-)

Кстати, только заметил. Внимательнее присмотрись вверх и увеличь, где провода над улицей проходят. Что это за невъебенная пчела-мамонт? Это у вас там такая куета по улицам летает? Стрёмно же Провинция... :-)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38478048
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КПровинция... :-)
Не прибедняйся, походу в том офисе-серверной с радиоактивными веществами в аккурат балуются :)

Алексей как-то вышел по утру из дома и решил пешком прогуляться до работы...
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38478052
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообщем, ладно. С тебя выковыренный таббед мди. По рукам? )
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38478062
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУВообщем, ладно. С тебя выковыренный таббед мди. По рукам? )Ну может завтра. :-)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38478092
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КНу может завтра. :-)
Ок :)

P.S. Всё готов понять и согласиться, но вот за такое - прикладом охотничьего ружья по пузу! И не спорь
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38478095
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей КНу может завтра. :-)
Ок :)

P.S. Всё готов понять и согласиться, но вот за такое - прикладом охотничьего ружья по пузу! И не спорь Ну ты же знаешь, мне такое нравится. Это решение работает уже много лет со всеми версиями офиса. И не спорь. :-)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38478199
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К, вообщем, установил я твою тулзу. Сыплется и ругается "Текущей учётной записи пользователя не сопоставлен сотрудник"
Потом идет throw и ошибка потекла по таскам... Что это за тасковое асинхронное безумие, как тебе отладка такого приложения? Зачем?
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38478257
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей К, вообщем, установил я твою тулзу. Сыплется и ругается "Текущей учётной записи пользователя не сопоставлен сотрудник" "Начальная настройка системы" .
МСУЧто это за тасковое асинхронное безумие, как тебе отладка такого приложения? Зачем?Все запросы от UI к серверу приложений асинхронные. Оно конечно добавляет гемора, но результат того стоит.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38478283
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУSeVaЛучше объясни почему такое чмо подпускают к клавиатуре. В РЖД нужны одни таджики?
В твоем говнокоде масло масляное, двойное переключение контекста синхронизации и лишний делегат с последующим вызовом.

Если бы что-то слышал про TPL, то был бы такой код
Код: c#
1.
2.
3.
4.
5.
6.
     var ui = TaskScheduler.FromCurrentSynchronizationContext();
    Task.Factory.StartNew(() =>{vm.Load();})
        .ContinueWith(t =>
        {
            view.Title = id;
        }, ui);




"Знаток TPL", можешь объяснить какие могут быть засады с StartNew, которых нет в rx?
Могу поспорить на щелбан, что не ответишь?

Только такому кретину как ты невдомек, что нет никаких двойных переключений, есть текущий контекст в новой задаче. Примерно так же , только без CancellationToken. Но в Почте России этого не понимают, поэтому тебе дальше приходится ковыряться в говне типа RX и строить из себя умную макаку. Ну-ка расскажи мне, чем же так опасна передача текущего контекста в задачу, тварь?

1. Чмо, я лучше знаю китайский, чем ты TPL.
автор“TaskScheduler.FromCurrentSynchronizationContext” should now make more sense. This method creates a TaskScheduler that wraps the SynchronizationContext returned from SynchronizationContext.Current. Thus, this gives you a TaskScheduler that will execute Tasks on the current SynchronizationContext. Why is that useful? It means you can create Tasks that are able to access UI controls safely, simply by running them on the right scheduler.
. Тынц

Те TaskScheduler.FromCurrentSynchronizationContext вызовет Post у контекста синхронизации, а твой левый Dispatcher.BeginInvoke - лишняя педаль и телодвижения.
2.Вторая причина почему ты железнодорожная шпала. Таски могут создаваться во многих режимах, для этого в StartNew есть параметры, в которых нужно разбираться иначе можно нагородить(что ты нам прекрасно уже не раз доказывал).Если их не задавать, то тред запускается из тредпула для длительных операций, а он имеет одну характерную особенность - при создании нового может происходить задержка порядка 0,5сек и могут быть тормоза, когда нужна пачка вызовов.
3. Почему TPL туфта, а ты опять чайник, который ничего не знает. При повторном запуске кода, который я продемонстрировал(обычно никто в здравом уме ничего подобного не делает в конструкторах и рисует кнопочку Обновить),
TPL будет сразу делать выполнение в UI треде.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38478382
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVaМСУ
Только такому кретину как ты невдомек, что нет никаких двойных переключений, есть текущий контекст в новой задаче. Примерно так же , только без CancellationToken. Но в Почте России этого не понимают, поэтому тебе дальше приходится ковыряться в говне типа RX и строить из себя умную макаку. Ну-ка расскажи мне, чем же так опасна передача текущего контекста в задачу, тварь?

1. Чмо, я лучше знаю китайский, чем ты TPL.
автор“TaskScheduler.FromCurrentSynchronizationContext” should now make more sense. This method creates a TaskScheduler that wraps the SynchronizationContext returned from SynchronizationContext.Current. Thus, this gives you a TaskScheduler that will execute Tasks on the current SynchronizationContext. Why is that useful? It means you can create Tasks that are able to access UI controls safely, simply by running them on the right scheduler.
. Тынц

Те TaskScheduler.FromCurrentSynchronizationContext вызовет Post у контекста синхронизации, а твой левый Dispatcher.BeginInvoke - лишняя педаль и телодвижения.
2.Вторая причина почему ты железнодорожная шпала. Таски могут создаваться во многих режимах, для этого в StartNew есть параметры, в которых нужно разбираться иначе можно нагородить(что ты нам прекрасно уже не раз доказывал).Если их не задавать, то тред запускается из тредпула для длительных операций, а он имеет одну характерную особенность - при создании нового может происходить задержка порядка 0,5сек и могут быть тормоза, когда нужна пачка вызовов.
3. Почему TPL туфта, а ты опять чайник, который ничего не знает. При повторном запуске кода, который я продемонстрировал(обычно никто в здравом уме ничего подобного не делает в конструкторах и рисует кнопочку Обновить),
TPL будет сразу делать выполнение в UI треде.

Ты просто кретинья морда. Ты ничего не соображаешь ни в TPL, ни в XAML, ни в дотнете. От тебя один смрад и зловоние, типичная тупая обезьяна без ума и фантазии.

1. Что ты мне привел копипаст, идиотина? Выше ты говорил, что диспетчер не работает в одном потоке. Я тебе дал ссылку на то, что работает именно в одном потоке. К чему ты тут приводишь Dispatcher.BeginInvoke, дятел? Речь Task.Factory.StartNew. Dispatcher.BeginInvoke для твоей гавнозадачи не годится. И кстати, где твой EndEnvoke? А я тебе скажу где, его нет, придурок. Ты обосрался, никакого Dispatcher.EndEnvoke нет, это плод твоего больного воображения.

2. Какая задержка, дурень? Поназапускай хоть тыщу окон, они все быстро отработают в различных тредах. Задержка может быть только в том случае, когда пул не выдает новый поток. Но тут уже ничего не сделаешь, придется ждать. Ты такая тупая дура, что не понимаешь этого? Иди коров паси.

3. Так я не понял, кнопочка обновить это плохо? Ты уверен, не боишься опять обосраться? В конструкторе у меня не происходит длительных операций, это тупой пример. Я выложил выше последний, никаких работ в конструкторе. Ты ничего не продемонстрировал, у тебя нет ничего для демонстрации. Толку от тебя ноль, обычная чумная смердящая обезьяна.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38478459
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КВсе запросы от UI к серверу приложений асинхронные. Оно конечно добавляет гемора, но результат того стоит.
Я бы не стал асинхронить всё приложение, какие-то отдельные узкие места - да. Но всё приложение - это уже параноя а-ля сильверлайт и блокировка браузера.
Потыкался в гуе, довольно таки дружественный интерфейс, всё "мягко" и просто открывается, меняется. Были некоторые моменты в минус, но это мелочи. Вспоминая недавний спич о календаре, я понял, чем он тебя не устраивал - отсутствие выбора текущей даты. У тебя это сделано. Единственное, в чем я с тобой не согласен, такой формат в календаре неверен "dd.MM.yy", думаю не стоит объяснять, почему. Ну а по поводу отсутствия доменной аутентификации - это очень хреново. Лучше бы ты её сделал, чем тот кастом, который есть у тебя. Тем более доменность реализовывается намного проще, не нужно хранить пароли, а лишь только доменные сиды. Да и безопасней это дело. Не понятно, нахрена таблицу солёных паролей отвязывать от таблицы пользователей, маразм какой-то :) И кстати, таки в таббед мди есть большой минус - окна не садятся в панель задач, которая сама нативно группирует их (в том числе и снапшотит рисунком). Очень удобно в 7-8 винде работать с окнами в панели задач. В твоём случае - неудобно, приходится их стрелочкой листать, читать и искать. Так бы я мышкой навел на панель задач, открылась бы отснапшотенная линейка окон, выбрал бы нужное и вуаля. А так чувствуется, сколько времени ты убил на это поделие, особенно если ориентироваться на минимальные даты файлов проекта.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38478492
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ExcelScope
Код: c#
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.
public class ExcelScope : IDisposable
{
    public Application Application { get; private set; }

    public ExcelScope()
    {
        Application = new Application();
    }

    public void Dispose()
    {
        if (Application != null)
        {
            // Без этого не завершится процесс Excel.
            if (Application.Visible == false)
                CloseAllWorkbooks();

            Application = null;

            /*
                * Сборка мусора приведёт к вызову .Release() из финализаторов COM Interop объектов.
                * В результате, процесс Excel будет завершён, если его главная форма не показана на экране.
                */

            GC.Collect();
        }
    }

    void CloseAllWorkbooks()
    {
        while (Application.Workbooks.Count > 0)
            Application.Workbooks[1].Close(false, "", false);
    }
}

...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38478516
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К, глянь на дизайн новой аксапты (предыдущая такая же), никаких таббед мди, только полноценные окна. Вверху - удобный навигатор, похожий на навигатор explorer.

С полноценными окнами намного удобнее работать, имхо.

YouTube Video
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38478518
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей КВсе запросы от UI к серверу приложений асинхронные. Оно конечно добавляет гемора, но результат того стоит.
Я бы не стал асинхронить всё приложение, какие-то отдельные узкие места - да. Но всё приложение - это уже параноя а-ля сильверлайт и блокировка браузера.Я раньше тоже так думал. Потом освоил TPL и мне показалось, что "не так страшен чёрт, как его малюют" :-)

Сначала напрягало, а теперь вроде все привыкли. Даже такое теперь не пугает: см метод MessageAttachmentsData.AddFiles :-)

МСУПотыкался в гуе, довольно таки дружественный интерфейс, всё "мягко" и просто открывается, меняется.Это всё благодаря асинхронности. Там есть пару косяков из-за этого, но я пока на них забил, и никому про них не говорю. :-)

МСУБыли некоторые моменты в минус, но это мелочи. Вспоминая недавний спич о календаре, я понял, чем он тебя не устраивал - отсутствие выбора текущей даты. У тебя это сделано. Единственное, в чем я с тобой не согласен, такой формат в календаре неверен "dd.MM.yy", думаю не стоит объяснять, почему.У меня все даты "недалеко" от текущей даты. Это сделано для экономии места на экране. Но это спорный вопрос. Тут я скорее с тобой соглашусь. :-)

МСУНу а по поводу отсутствия доменной аутентификации - это очень хреново. Лучше бы ты её сделал, чем тот кастом, который есть у тебя. Тем более доменность реализовывается намного проще, не нужно хранить пароли, а лишь только доменные сиды. Да и безопасней это дело.Программа писалась изначально под наши задачи, одновременно с целью освоить применяемые технологии. В тот момент хотелось освоить кастомную аутентификацию. Одним словом - это сделано в образовательных целях. Не исключаю, что в будущем необходимость доменной аутентификации таки потребуется. Я готов к этому. :-)

МСУНе понятно, нахрена таблицу солёных паролей отвязывать от таблицы пользователей, маразм какой-то :)Это чтобы в будущем сделать доменную аутентификацию. Там ведь пароли хранить не надо. :-)

МСУИ кстати, таки в таббед мди есть большой минус - окна не садятся в панель задач, которая сама нативно группирует их (в том числе и снапшотит рисунком). Очень удобно в 7-8 винде работать с окнами в панели задач. В твоём случае - неудобно, приходится их стрелочкой листать, читать и искать. Так бы я мышкой навел на панель задач, открылась бы отснапшотенная линейка окон, выбрал бы нужное и вуаля.Ок, подумаю об этом.

МСУА так чувствуется, сколько времени ты убил на это поделие, особенно если ориентироваться на минимальные даты файлов проекта.Ну да, какое-то время пришлось на это потратить. :-)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38478524
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУSeVaпропущено...


1. Чмо, я лучше знаю китайский, чем ты TPL.
пропущено...
. Тынц

Те TaskScheduler.FromCurrentSynchronizationContext вызовет Post у контекста синхронизации, а твой левый Dispatcher.BeginInvoke - лишняя педаль и телодвижения.
2.Вторая причина почему ты железнодорожная шпала. Таски могут создаваться во многих режимах, для этого в StartNew есть параметры, в которых нужно разбираться иначе можно нагородить(что ты нам прекрасно уже не раз доказывал).Если их не задавать, то тред запускается из тредпула для длительных операций, а он имеет одну характерную особенность - при создании нового может происходить задержка порядка 0,5сек и могут быть тормоза, когда нужна пачка вызовов.
3. Почему TPL туфта, а ты опять чайник, который ничего не знает. При повторном запуске кода, который я продемонстрировал(обычно никто в здравом уме ничего подобного не делает в конструкторах и рисует кнопочку Обновить),
TPL будет сразу делать выполнение в UI треде.

Ты просто кретинья морда. Ты ничего не соображаешь ни в TPL, ни в XAML, ни в дотнете. От тебя один смрад и зловоние, типичная тупая обезьяна без ума и фантазии.

1. Что ты мне привел копипаст, идиотина? Выше ты говорил, что диспетчер не работает в одном потоке. Я тебе дал ссылку на то, что работает именно в одном потоке. К чему ты тут приводишь Dispatcher.BeginInvoke, дятел? Речь Task.Factory.StartNew. Dispatcher.BeginInvoke для твоей гавнозадачи не годится. И кстати, где твой EndEnvoke? А я тебе скажу где, его нет, придурок. Ты обосрался, никакого Dispatcher.EndEnvoke нет, это плод твоего больного воображения.

2. Какая задержка, дурень? Поназапускай хоть тыщу окон, они все быстро отработают в различных тредах. Задержка может быть только в том случае, когда пул не выдает новый поток. Но тут уже ничего не сделаешь, придется ждать. Ты такая тупая дура, что не понимаешь этого? Иди коров паси.

3. Так я не понял, кнопочка обновить это плохо? Ты уверен, не боишься опять обосраться? В конструкторе у меня не происходит длительных операций, это тупой пример. Я выложил выше последний, никаких работ в конструкторе. Ты ничего не продемонстрировал, у тебя нет ничего для демонстрации. Толку от тебя ноль, обычная чумная смердящая обезьяна.

1. Ты ничего не знаешь, а уж тем более xaml. C диспатчером все просто. В твой зловонный код можно заныривать только с закрытыми глазами, иначе можно остаться без глаз. Я успел увидель begin и сработал рефлекс(запиши себе в тетрадку, в rx и task есть полезные конструевины FromAsync(BeginCall,EndCall), но как-то забыл, что ты полный муфлон и у тебя одна лажа. Мне и в голову не могло прийти, что найдется идиот, который будет запускать треды с помощью Dispatcher'a.
2. Благодаря твоей тупости и незнанию TPL эти задержку на ровном месте будут практически всегда
3. Ты можешь только накладывать

И на последок. Вонь здесь только от тебя, тебя макают мордой в твое УГ, а ты даже прожевать не успеваешь.
С набитым ртом пытаешься что-то вякать, весь форум уже забрызгал
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38478548
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КЯ раньше тоже так думал. Потом освоил TPL и мне показалось, что "не так страшен чёрт, как его малюют" :-)
Ну TPL не так сложен, как кажется, тем более для рядовых ситуаций. Вопрос в геморрое всё это поддерживать, отлаживать, сопровождать... Ну твоё дело, конечно.

Алексей КЭто всё благодаря асинхронности. Там есть пару косяков из-за этого, но я пока на них забил, и никому про них не говорю. :-)
Ну не скажи, асинхронность тут не при чем :) Она будет причем, когда будут тормоза (SOA, БД). Но тормоза - это исключительная ситуация, баг, проблема. Решается соответствующим образом. А тут ты приходишь на рыбалку, ставишь спининги, донки, прикорм ну и заодно монтируешь торпеды для защиты от мимопроходящих танкеров, чтобы они не пугали тебе рыбу. Но забываешь о том, что если твоя торпеда разок въебёт по цели, вся рыба не то, что расшугается, она брюхом кверху всплывет. Стоит ли игра свеч ради такого гемороя, имхо не стоит. Раньше всегда писали однопоточные тред аппартаменты, в особых случаях паралеллили только - и ничего, всё было хорошо и быстро. Опять же, количество геморроя помноженное на выгоду - стоит ли оно того? Фанатизм страшная штука, сам же не раз в меня тыкал этим. А тут такое... Но конечный результат реально хорош, тут вопросов не имею.

Алексей КУ меня все даты "недалеко" от текущей даты. Это сделано для экономии места на экране. Но это спорный вопрос. Тут я скорее с тобой соглашусь. :-)
Ну это у "тебя", а у пользователя может быть по-другому. Ты же не для себя пишешь программу :)

Алексей КПрограмма писалась изначально под наши задачи, одновременно с целью освоить применяемые технологии. В тот момент хотелось освоить кастомную аутентификацию. Одним словом - это сделано в образовательных целях. Не исключаю, что в будущем необходимость доменной аутентификации таки потребуется. Я готов к этому. :-)
Ок :)

Алексей КМСУНе понятно, нахрена таблицу солёных паролей отвязывать от таблицы пользователей, маразм какой-то :)Это чтобы в будущем сделать доменную аутентификацию. Там ведь пароли хранить не надо. :-)
Ну будет пустая соль у таких юзверей, какая разница. Но выкрутился, признаю сей факт :)

Алексей КОк, подумаю об этом.
Вот как бы их протащить и в таск бар, было бы вообще чудесно.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38478556
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVa
1. Ты ничего не знаешь, а уж тем более xaml. C диспатчером все просто. В твой зловонный код можно заныривать только с закрытыми глазами, иначе можно остаться без глаз. Я успел увидель begin и сработал рефлекс(запиши себе в тетрадку, в rx и task есть полезные конструевины FromAsync(BeginCall,EndCall), но как-то забыл, что ты полный муфлон и у тебя одна лажа. Мне и в голову не могло прийти, что найдется идиот, который будет запускать треды с помощью Dispatcher'a.
2. Благодаря твоей тупости и незнанию TPL эти задержку на ровном месте будут практически всегда
3. Ты можешь только накладывать

И на последок. Вонь здесь только от тебя, тебя макают мордой в твое УГ, а ты даже прожевать не успеваешь.
С набитым ртом пытаешься что-то вякать, весь форум уже забрызгал

Ты не устала тараторить, безумная макака? Все и так знают твой уровень - его как такового вообще нет. Только сопли и вонь, за спиной у тебя ни опыта, ни ценных дельных советов. Просто тупая маразматичка, которую все пинают. Какой в жопу rx и task, дятел? Я тебе в начале писал про диспетчер, который работает в конкретном потоке - ты ляпнул, что нужен еще и EndEnvoke. Вот я тебя и спрашиваю, какой EndEnvoke у диспетчера? Обосралась ты знатно, макака - обтекай. УГ - твоя никчемная пустая жизнь, чучело. Убей себя.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38478595
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУНу не скажи, асинхронность тут не при чем :) Она будет причем, когда будут тормоза (SOA, БД). Но тормоза - это исключительная ситуация, баг, проблема. Решается соответствующим образом. А тут ты приходишь на рыбалку, ставишь спининги, донки, прикорм ну и заодно монтируешь торпеды для защиты от мимопроходящих танкеров, чтобы они не пугали тебе рыбу. Но забываешь о том, что если твоя торпеда разок въебёт по цели, вся рыба не то, что расшугается, она брюхом кверху всплывет. Стоит ли игра свеч ради такого гемороя, имхо не стоит. Раньше всегда писали однопоточные тред аппартаменты, в особых случаях паралеллили только - и ничего, всё было хорошо и быстро. Опять же, количество геморроя помноженное на выгоду - стоит ли оно того? Фанатизм страшная штука, сам же не раз в меня тыкал этим. А тут такое... Но конечный результат реально хорош, тут вопросов не имею.Запрос у серверу приложений через SSL даже по Net.TCP происходит не быстро. Последовательная закачка десятка небольших классификаторов для комбобоксов формы редактирования происходит заметно долго. Асинхронная загрузка происходит параллельно и незаметно быстро. :-)

МСУАлексей КУ меня все даты "недалеко" от текущей даты. Это сделано для экономии места на экране. Но это спорный вопрос. Тут я скорее с тобой соглашусь. :-)
Ну это у "тебя", а у пользователя может быть по-другому. Ты же не для себя пишешь программу :)Ты затронул страшную тему.

Я боюсь делать год 4-мя цифрами, потому что пикер станет шире, что может нарушить компоновку "тучи" прикладных форм. Я просто боюсь, но постоянно об этом думаю. :-)

МСУВот как бы их протащить и в таск бар, было бы вообще чудесно.Так в заголовке MdiContainer есть же аналог TaskBar. Там показаны все открытые документы. Или я не про то?
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38478615
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КЗапрос у серверу приложений через SSL даже по Net.TCP происходит не быстро.
Жуть какая-то. Даже через не особо скоростные Http привязки данные летают очень быстро за доли секунд. Возможно ты хостишь SOA песочницу на луне? :)

Алексей КЯ боюсь делать год 4-мя цифрами, потому что пикер станет шире...
Всё, дальше не продолжай - если пикер станет шире, минимум, это должно привести к краху всей асинхронной архитектуры твоего приложения, а это очень опасно

Алексей КМСУВот как бы их протащить и в таск бар, было бы вообще чудесно.Так в заголовке MdiContainer есть же аналог TaskBar. Там показаны все открытые документы. Или я не про то?
Так это аналог, а не таск бар. Причем вшивенький аналог, не такой красивый, мощный и удобный, как нативный. Зачем писать велосипед, если обычные окна по умолчанию и так работают адекватно? Даже в допотопном XP окна в баре удобно группируются и доступны по наведению мышки. Ну как знаешь, вообщем. У меня другой вопрос, почему главное окно в WPF не выходит на передний план, если я мышкой фокусируюсь на нем (до этого было открыто дочернее окно и фокус был на нем). То есть оно так и остается в send to bask как бы, причем оно актиное. А дочернее уже неактивное своей жопой загораживает свет.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38478632
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей КЯ боюсь делать год 4-мя цифрами, потому что пикер станет шире...
Всё, дальше не продолжай - если пикер станет шире, минимум, это должно привести к краху всей асинхронной архитектуры твоего приложения, а это очень опасно Таки попробую сделать 4 цифры.

МСУУ меня другой вопрос, почему главное окно в WPF не выходит на передний план, если я мышкой фокусируюсь на нем (до этого было открыто дочернее окно и фокус был на нем). То есть оно так и остается в send to bask как бы, причем оно актиное. А дочернее уже неактивное своей жопой загораживает свет.Не совсем понимаю. Отпиши подробнее, что нужно сделать чтобы этого добиться. Завтра на работе попробую.

зы: Там были проблемы с фокусом окна при закрытии диалога редактирования. Но я вроде решил эту проблему. Все диалоги открываю так: см WindowHelper.ShowDialogEx . Или ты не про диалоги?
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38478636
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КТаки попробую сделать 4 цифры.
Ох, опасную игру ты затеял...

Алексей Кзы: Там были проблемы с фокусом окна при закрытии диалога редактирования. Но я вроде решил эту проблему. Все диалоги открываю так: см WindowHelper.ShowDialogEx . Или ты не про диалоги?
Не, я не про диалог. Кстати, запусти вот той мой пример для 10 студии, вызови дочернее окно и сфокусируйся на основном окне. Бред какой-то...
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38478642
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей КТаки попробую сделать 4 цифры.
Ох, опасную игру ты затеял...

МСУАлексей Кзы: Там были проблемы с фокусом окна при закрытии диалога редактирования. Но я вроде решил эту проблему. Все диалоги открываю так: см WindowHelper.ShowDialogEx . Или ты не про диалоги?
Не, я не про диалог. Кстати, запусти вот той мой пример для 10 студии, вызови дочернее окно и сфокусируйся на основном окне. Бред какой-то...Попробуй window.Owner надо установить? Ну я попробую потом.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38478651
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУМожет это ? В WPF есть какие-то непонятки с окнами и фокусом.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38478665
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КПопробуй window.Owner надо установить? Ну я попробую потом.
Установлено.

Алексей КМожет это ? В WPF есть какие-то непонятки с окнами и фокусом.
Не, тут при "on window close". А у меня даже закрывать ничего не надо, тупо фокусирую главное окно, оно фокусируется, но на перед не вылазит.

P.S. Да, а по поводу on close делаю вот такой хак:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
public void OpenEmployeesWindow()
{
    EmployeesViewModel vm = new EmployeesViewModel(App.Container);
            
    var view = new EmployeesWindow();
    view.Owner = ActiveWindow;
    view.DataContext = vm;
    view.Activated += (a, b) => { vm.Load(); };
    view.Closed += (a, b) => { vm.Dispose(); view.Owner.Activate(); };
    view.Show();
}



Иначе с фокусом творится жуть. Если есть выше по иерархии чужое окно, оно при закрытии моего окна идет наверх. Вообщем, я просто в шоке от системы управлением фокуса в впф...
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38478691
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУВообщем, я просто в шоке от системы управлением фокуса в впф...Ты не одинок в этом. Остаётся только расслабиться, и постараться получить удовольствие.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38478703
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КТы не одинок в этом. Остаётся только расслабиться, и постараться получить удовольствие.
Ничего по-нормальному сделать не могут... Я же говорю, онли веб :)
Кстати, твоё поделие очень хорошо бы смотрелось на asp.net mvc, никаких wcf и прочей мути - открыл браузер и делов. За вебом будущее, ты это знаешь. Не спорь :)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38478707
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей КТы не одинок в этом. Остаётся только расслабиться, и постараться получить удовольствие.
Ничего по-нормальному сделать не могут... Я же говорю, онли веб :)
Кстати, твоё поделие очень хорошо бы смотрелось на asp.net mvc, никаких wcf и прочей мути - открыл браузер и делов. За вебом будущее, ты это знаешь. Не спорь :)В следующем году, вероятно, займусь вебом. Уверен, там своих тараканов не меньше чем тут. :-)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38478733
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КВ следующем году, вероятно, займусь вебом. Уверен, там своих тараканов не меньше чем тут. :-)
Так ты ж уже и так занялся им, вона сайтик накидал. Я пробил через буилдвиз - на родненьком мвц испёк :)
http://builtwith.com/ss-pro.ru ASP.NET MVC
ASP.NET MVC Usage Statistics - Websites using ASP.NET MVC
Model View Controller Framework for ASP.NET
HTML5 DocType Usage Statistics - Websites using HTML5 DocType
The DOCTYPE is a required preamble for HTML5 websites.

P.S. Тараканы есть везде, согласен. Главное ведь что - удобная и гибкая инфраструктура, легкое развертывание и элементарное масштабирование, безопасность и всеобъемлющая доступность. А это именно веб, более того с чудесной приправкой в виде mvc паттерна. Ну не счастье ли? Если нужен мега дизайн - ну натрави ты на это дело верстальщика, будет вообще сладко. Вообщем, одни плюсы. Хотя единственный минус - отсоединенный десктоп режим. Нужно в самолете поработать или в пещере без связи. Тут да, впф со своим фокусом - что, что доктор прописал.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38478749
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вообще клёво, прогулялся я до Красного Проспекта , урбанизация, высотки, шумно и пыльно. Приятно лицезреть суетливую жизнь доброго города миллионника :)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38478774
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей КВ следующем году, вероятно, займусь вебом. Уверен, там своих тараканов не меньше чем тут. :-)
Так ты ж уже и так занялся им, вона сайтик накидал. Я пробил через буилдвиз - на родненьком мвц испёк :)Ага, на нём самом. :-)

Но движок сайта простенький. Там гордиться особо нечем. :-)

МСУP.S. Тараканы есть везде, согласен. Главное ведь что - удобная и гибкая инфраструктура, легкое развертывание и элементарное масштабирование, безопасность и всеобъемлющая доступность. А это именно веб, более того с чудесной приправкой в виде mvc паттерна. Ну не счастье ли? Если нужен мега дизайн - ну натрави ты на это дело верстальщика, будет вообще сладко. Вообщем, одни плюсы. Хотя единственный минус - отсоединенный десктоп режим. Нужно в самолете поработать или в пещере без связи. Тут да, впф со своим фокусом - что, что доктор прописал.Поживём - увидим. :-)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38478792
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУА вообще клёво, прогулялся я до Красного Проспекта , урбанизация, высотки, шумно и пыльно. Приятно лицезреть суетливую жизнь доброго города миллионника :)Ага, шума и пыли у нас хватает. :-)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38478794
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лёша, вот такого быть не должно :)

http://www.ss-pro.ru/arc?arcID=TaskPlanner&path=жопа

Основная задача: не доверять клиенту, проверять ввод, выдавать внятный ответ:

http://codearticles.ru/articles/жопа
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38478802
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
500 ошибка самая страшная, будешь часто светиться с такими ошибками, поисковые боты тебя понизят в рейтинге и краулиться твой сайт будет реже. Нужно 100% избегать этого.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38478811
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУЛёша, вот такого быть не должно :)

http://www.ss-pro.ru/arc?arcID=TaskPlanner&path=жопа

Основная задача: не доверять клиенту, проверять ввод, выдавать внятный ответ:

http://codearticles.ru/articles/жопа Робот пойдёт по ссылке, а по ссылкам такой ошибки не будет. Если я сам в документе со ссылкой не промахнусь.

Но я в курсе, обещаю поправить. Просто мой ресурс ограничен, а это не единственная моя задача, тупо не успеваю. :-)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38478962
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КРобот пойдёт по ссылке, а по ссылкам такой ошибки не будет.
Злоумышленник нагенерит подобных битых ссылок с 500 ошибкой и распространит по различным ресурсам, конкретный просад краулинга обеспечен - тебя тупо опустили в рейтинге, люди не будут находить ресурс, т.к. поисковики будут считать твой сайт неработающим. И только аналитика (а-ля google analytics или яндекс метрика) поможет выявить эту проблему для дальнейшего разрешения, но чтобы восстановить нормальный индекс уйдет много времени. А зачем так открывать задницу, если можно минимум надеть на неё льняные трусы.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38479087
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КНу ты же знаешь, мне такое нравится. Это решение работает уже много лет со всеми версиями офиса. И не спорь. :-)
А если у клиента нет ms офиса? Например, у него openoffice :) Хорошая, кстати, штука.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38479237
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей КРобот пойдёт по ссылке, а по ссылкам такой ошибки не будет.
Злоумышленник нагенерит подобных битых ссылок с 500 ошибкой и распространит по различным ресурсам, конкретный просад краулинга обеспечен - тебя тупо опустили в рейтинге, люди не будут находить ресурс, т.к. поисковики будут считать твой сайт неработающим. И только аналитика (а-ля google analytics или яндекс метрика) поможет выявить эту проблему для дальнейшего разрешения, но чтобы восстановить нормальный индекс уйдет много времени. А зачем так открывать задницу, если можно минимум надеть на неё льняные трусы.Ок
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38479238
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей КНу ты же знаешь, мне такое нравится. Это решение работает уже много лет со всеми версиями офиса. И не спорь. :-)
А если у клиента нет ms офиса? Например, у него openoffice :) Хорошая, кстати, штука.Может быть. :-)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38479318
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КМожет быть. :-)
Переписываем на OpenXML, на клиенте не нужно никакого офиса, отказываемся от комовского говноинтеропа. Ну а поддержка 2003 офиса и ниже нах не нужна.

Верь мне (с)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38479367
enigmatic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVaИ на последок. Вонь здесь только от тебя, тебя макают мордой в твое УГ, а ты даже прожевать не успеваешь.
С набитым ртом пытаешься что-то вякать, весь форум уже забрызгалБезобразно ведёте себя.

Если уж он настолько неправ, то зачем заниматься обучением, тем более таким образом. Это читать противно.
Его я, например, вообще не читаю, поскольку с ним и так всё ясно. А вот тебя я читаю, в отличие от.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38479374
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей КМожет быть. :-)
Переписываем на OpenXML, на клиенте не нужно никакого офиса, отказываемся от комовского говноинтеропа. Ну а поддержка 2003 офиса и ниже нах не нужна.

Верь мне (с)Ну год я на 4 цифры переделал (скриншоты в мануале позже поправлю). Обработку ошибок на сайте добавил. С OpenOffice пока подождём. :-)

зы: Обработка ошибок не понравилась, без костылей не обошлось. Всё как всегда.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38479405
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КНу год я на 4 цифры переделал (скриншоты в мануале позже поправлю)
Ну всё, теперь я буду бояться за корректную многопоточность

Алексей КС OpenOffice пока подождём. :-)
А что ждать-то, выплюнуть грид в xlsx сложно? :)

Алексей Кзы: Обработка ошибок не понравилась, без костылей не обошлось. Всё как всегда.
Как обрабатывал? Ты опять неправильно сделал, у тебя 500 ошибка, а должна быть 404.

Список кодов состояния HTTP

...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38479477
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУТы опять неправильно сделал, у тебя 500 ошибка, а должна быть 404.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38479482
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУКак обрабатывал?
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
    public class MvcApplication : System.Web.HttpApplication
    {        
        protected void Application_Error(object sender, EventArgs e)
        {
            Context.ClearError();
            Context.Response.Clear();
            Context.Response.TrySkipIisCustomErrors = true;

            var rd = new RouteData();
            rd.Values["controller"] = "Error";
            rd.Values["action"] = "Index";

            IController c = new ErrorController();
            c.Execute(new RequestContext(new HttpContextWrapper(Context), rd));
        }
    }
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38479486
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К, на помойку :)

http://www.ss-pro.ru/aux

P.S. Упс
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38479496
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К, разница между HTTP кодом твоим красненьким сообщением огромна, между ними пропасть :)

Ты возвращаешь так же 500-ый код, это дичайшее зло...
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38479498
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУКак обрабатывал?Странно, на моём IIS возвращало 200. Тут возвращает 500. Может явно Response.StatusCode = 200 поставить?
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38479502
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КМСУКак обрабатывал?Странно, на моём IIS возвращало 200. Тут возвращает 500. Может явно Response.StatusCode = 200 поставить?
200 не могло возвращать, я же запросил несуществующий ресурс. Должно 404 ретурнить...
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38479507
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей Кпропущено...
Странно, на моём IIS возвращало 200. Тут возвращает 500. Может явно Response.StatusCode = 200 поставить?
200 не могло возвращать, я же запросил несуществующий ресурс. Должно 404 ретурнить...Ну я же перехватываю через Application_Error и могу там поставить всё что захочу. Не?
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38479532
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КНу я же перехватываю через Application_Error и могу там поставить всё что захочу. Не?
Хотелось бы так, но не всё так просто - ты должен сам это попробовать, а потом рассказать мне :)

И что по поводу этого? 15197104
Почему не спрашиваешь, отчего же такое исключение положило болт на твою глобальность? :)

Кстати, джуджу тоже двойка www.sql.ru/aux

Я потом дам тебе секретный рецепт.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38479545
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ай-яй-яй, жуж саму 500-ую вбрасывает, вот это дырочка...

P.S. У тебя бросает 404, как положено, но ошибка не обрабатывается для UI пользователя. Так что тройка с плюсом :)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38479549
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ http://www.ss-pro.ru/xxx

Так теперь работает.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38479552
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУЯ потом дам тебе секретный рецепт.Чё за aux , рассказывай! :-)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38479559
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КМСУ http://www.ss-pro.ru/xxx
Так теперь работает.
А так? http://www.ss-pro.ru/con

Алексей КМСУЯ потом дам тебе секретный рецепт.Чё за aux , рассказывай! :-)
Zombie URL DOS names... :)/con, /com1, /lpt1, /aux, /prt, /nul, etc
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38479575
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУZombie URL DOS names... :)/con, /com1, /lpt1, /aux, /prt, /nul, etcНу DOS это понятно. А чё с ними тут делать?
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38479582
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КА чё с ними тут делать?
Я знаю один замечательный рецептурный сайтик, название правда забыл :)

Но ты должен знать его, идешь в раздел мвц, потом ищешь раздел url, и раскуриваешь пергамент с названием "Своя страница для 404 ошибки". Если интересно устройство поделия, можешь исходники покурить.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38479596
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38479597
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей КА чё с ними тут делать?
Я знаю один замечательный рецептурный сайтик, название правда забыл :)

Но ты должен знать его, идешь в раздел мвц, потом ищешь раздел url, и раскуриваешь пергамент с названием "Своя страница для 404 ошибки". Если интересно устройство поделия, можешь исходники покурить. Это?
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38479600
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38479622
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей К Это?
Своя страница для 404 ошибки Ок, но я это вроде в гуглах уже видел.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38479730
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КОк, но я это вроде в гуглах уже видел.
http://www.ss-pro.ru/aux
С какого перепуга ты возвращаешь 200, но при этом "При отображении страницы произошла ошибка"? Поисковики будут такие вещи складывать в индекс как корректный правильный респонз. Я тебе десятый раз говорю, для такой ситуации нужна 404 :)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38479733
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38479741
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей КОк, но я это вроде в гуглах уже видел.
http://www.ss-pro.ru/aux
С какого перепуга ты возвращаешь 200, но при этом "При отображении страницы произошла ошибка"? Поисковики будут такие вещи складывать в индекс как корректный правильный респонз. Я тебе десятый раз говорю, для такой ситуации нужна 404 :)Ок. :-)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38479767
Фотография Шайтан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
одного понять не могу - как на вопрос авторДобрый день господа форумчане.
Возник вопрос, как при использовании паттерна MVVM в WPF при выделении строки в DataGrid получить её содержимое?можно отвечать почти 20 страниц???
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38479771
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей КОк, но я это вроде в гуглах уже видел.
http://www.ss-pro.ru/aux
С какого перепуга ты возвращаешь 200, но при этом "При отображении страницы произошла ошибка"? Поисковики будут такие вещи складывать в индекс как корректный правильный респонз. Я тебе десятый раз говорю, для такой ситуации нужна 404 :)Поправил. :-)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38479773
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шайтанодного понять не могу - как на вопрос авторДобрый день господа форумчане.
Возник вопрос, как при использовании паттерна MVVM в WPF при выделении строки в DataGrid получить её содержимое?можно отвечать почти 20 страниц???Там не всё так однозначно.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38479811
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КТам не всё так однозначно.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38482077
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КМСУА если у клиента нет ms офиса? Например, у него openoffice :) Хорошая, кстати, штука.Может быть. :-)
Случайно сегодня набрёл на ссылку. А ты оказывается апологет "фу" шаблона

http://habrahabr.ru/post/109820/ Генерируем OfficeOpenXML-документы за 5 минут. Есть несколько привычных способов сделать это:
«Нашёл, слинковал, заюзал» – идём в Гугл, ищем библиотеку для генерации docx или xlsx, подключаем, разбираемся, генерируем. Это привычно, но долго.

«Фу» – использовать COM. Это не рекомендуется, требует установленного Microsoft Office на сервере, не очень thread-safe, с x64 не дружит и вообще старомодно.

«Ъ» – разобраться с форматом, собрать из XML и зазипать. Брутально.

«Microsoft way» – об этом способе рассказывается под катом.
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38482121
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К, по поводу заготовки шаблонов для docx / xlsx - когда пощупаешь, что такое Open XML SDK 2.5 Productivity Tool for Microsoft Office, тогда вообще свой COM забудешь как страшный сон :)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38482195
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей К, по поводу заготовки шаблонов для docx / xlsx - когда пощупаешь, что такое Open XML SDK 2.5 Productivity Tool for Microsoft Office, тогда вообще свой COM забудешь как страшный сон :)Ну оно работает, окружающие довольны. Зачем переписывать? :-)

Тут экспорт в Excel только WPF DataGrid . Потребуется переписать - там работы от силы на день...
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38482216
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КНу оно работает, окружающие довольны. Зачем переписывать? :-)

Это всё отговорки - нужно переписать. И прекращай спорить, верь мне :)

Алексей КПотребуется переписать - там работы от силы на день...
Ну так займись, вот тебе рецепт для пуляния датасета туда-обратно. И кстати, где обещанная помощь по фокусам? :)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38482222
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей КНу оно работает, окружающие довольны. Зачем переписывать? :-)

Это всё отговорки - нужно переписать. И прекращай спорить, верь мне :)Верю. :-)

МСУАлексей КПотребуется переписать - там работы от силы на день...
Ну так займись, вот тебе рецепт для пуляния датасета туда-обратно. И кстати, где обещанная помощь по фокусам? :)Ну дай отдохнуть. У нас уже ночь на дворе. :-)
...
Рейтинг: 0 / 0
Получения данных из DataGrid WPF MVVM
    #38482227
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КВерю. :-)
Понадобилось 5 лет, чтобы ты осознал, какое COM уныние и зло :) OpenXML уже ж давно пиарится...

Алексей КНу дай отдохнуть. У нас уже ночь на дворе. :-)
Ок
...
Рейтинг: 0 / 0
450 сообщений из 450, показаны все 18 страниц
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Получения данных из DataGrid WPF MVVM
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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