powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / не обновляются записи
2 сообщений из 2, страница 1 из 1
не обновляются записи
    #38598802
DoctorZelen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день ! попробую описать суть проблемы:
имеется UserControl

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
<telerik:RadBusyIndicator Name="WaitDataIndicator" telerik:StyleManager.Theme="Windows8Touch" IsBusy="{Binding DoWork}">

<telerik:RadDataForm x:Name="TimeRadDataForm"
                             telerik:StyleManager.Theme="Summer"
                             AutoGenerateFields="True"
			     Header="Редактирование времен транспортировок" 
                             ItemsSource="{Binding TimeTransportView}" 
                             IsManipulationEnabled="True"
                             Background="#39E9F5F0"
                             Height="338" >
                <telerik:EventToCommandBehavior.EventBindings>
                    <telerik:EventBinding Command="{Binding GenerateDataTable}"
                                          EventName="AutoGeneratingField"
                                          RaiseOnHandledEvents="True" 
                                          PassEventArgsToCommand="True"/>
                </telerik:EventToCommandBehavior.EventBindings>

                <telerik:RadDataForm.CommandProvider>
                    <viewModel:TimeTransportModelView DataForm="{Binding ElementName=DataForm}"/>
                </telerik:RadDataForm.CommandProvider>

            </telerik:RadDataForm>
</telerik:RadBusyIndicator>



ну и соответственно класс

Код: 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.
public class TimeTransportModelView : DataFormCommandProvider, INotifyPropertyChanged
{
        private ICollectionView _timeTransportView = null;
        private bool _additem; // добавление новой записи
        private bool _doWork; //включение-выключение индикатора загрузки

        public TimeTransportModelView(): base(null)
        {
        }

        public TimeTransportModelView(RadDataForm dataForm): base(dataForm)
        {
            DataForm = dataForm;
        }

        public void InitData()
        {
            var load = new Thread(() =>
            {
                DoWork = true; // индикатор загрузки 
                try
                {
                    // тут получаю все записи с сервера, сервак самописный
                    TimeTransportView = new QueryableCollectionView(new CallFunclion().Call<TimeTransport>("GetAllTransportTimes", 6000));
                    DoWork = false;
                }
                catch
                {
                    DoWork = false;
                    Dispatcher.BeginInvoke(DispatcherPriority.Background, new Action(() => RadWindow.Alert("Ошибка загрузки данных")));
                }
            }){IsBackground = true};
            load.Start();
        }

        protected override void AddNew()
        {
            _additem = true; // добавлена новая запись
            base.AddNew();
        }

        private void EditTimeTransport(TimeTransport f, string function)
        {
            var retUpdate = new Thread(() =>
            {
                try
                {
                    var update = new GetBaseData();
                    miXml = тут строка подключения
                    update.Call(miXml, 6000); //отправляю все на сервер
                    if (_additem)
                    {
                        //если добавлена новая запись, то нужно получить всю коллекцию заново
                        _additem = false;
                        InitData();
                    }
                }
                catch
                {
                   //тут окна об ошибках
                }
            }) { IsBackground = true };
            retUpdate.Start();
        }

        protected override void CommitEdit()
        {
            if (DataForm == null || !DataForm.ValidateItem()) return;
            var ret = DataForm.CurrentItem as TimeTransport;
            bool? result = false;
            //тут вызов диалога - хочет ли пользователь сохранить изменения 
            if ((bool)result)
            { 
                DataForm.CommitEdit();
                EditTimeTransport(ret, "UpdateTransportTimes"); 
             }
        }
}



первый раз, при открытии формы InitData работает, все данные я получаю (DataContext = new TimeTransportModelView().InitData() ). При добавлении записи в RadDataForm (таблица), вызывается override void CommitEdit(), который в свою очередь вызывает EditTimeTransport. В EditTimeTransport вызывается InitData(), которая должна обновить коллекцию и... вообщем ничего не происходит. Записи не обновляются, хотя при пошаговой отладке как ни странно InitData отрабатывает. Я уже всю голову поломал ) Если что, пользуюсь телериком.
...
Рейтинг: 0 / 0
не обновляются записи
    #38599147
DoctorZelen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
добавлю код
Код: 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 event PropertyChangedEventHandler PropertyChanged;

        protected virtual void OnPropertyChanged(string propertyName)
        {
            if (propertyName == null) throw new ArgumentNullException("propertyName");
            PropertyChangedEventHandler handler = PropertyChanged;
            if (handler != null) handler(this, new PropertyChangedEventArgs(propertyName));
        }
        public ICollectionView TimeTransportView
        {
            get
            {
                return _timeTransportView;
            }
            set
            {
                _timeTransportView = value;
                OnPropertyChanged("TimeTransportView");
            }
        }

        public bool DoWork 
        {
            get { return _doWork; } 
            set
            {
                _doWork = value; OnPropertyChanged("DoWork");
            } 
        }



вообщем при вызове InitData() из EditTimeTransport, handler почему-то пустой ( Из-за этого ничего не обновляется. В чем может быть косяк ?
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / не обновляются записи
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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