Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / WPF, Silverlight Новый топик    Ответить
 Обновление значений элементов на странице. Visual Studio 2015, Windows 10, C#, UWP  [new]
mserjo
Member

Откуда:
Сообщений: 54
Всем привет.

Проект в Visual Studio 2015, Windows 10, C#, UWP.

В приложении, при загрузке каждой страницы (Page), выполняется вычитка данных из некоторого источника для заполнения значений элементов на странице (RadioButton, ComboBox и т.д.), для этого элементам прописан в xaml свой Loaded="***_Loaded". После этого пользователь может менять значения, для этого элементам прописан в xaml свой Checked или SelectionChanged, кому что нужно. И есть кнопка для сброса на значения по умолчанию (где снова выполняется вычитка из некоторого источника). Отладкой видно, что значения точно изменяются на дефолтные, НО почему-то эти изменения не отображаются на странице. Подскажите, пожалуйста, может нужно что-то дополнительно вызвать или прописать элементам чтобы после сброса в дефолт, это отобразилось в элементах на странице?

Заранее спасибо.
11 янв 19, 11:45    [21782587]     Ответить | Цитировать Сообщить модератору
 Re: Обновление значений элементов на странице. Visual Studio 2015, Windows 10, C#, UWP  [new]
Eld Hasp
Member

Откуда:
Сообщений: 225
Причин может быть несколько. Чтобы понять нужен Ваш XAML и CB. Можно не целиком, а только в том объёме, чтобы понять ошибку.
11 янв 19, 11:48    [21782591]     Ответить | Цитировать Сообщить модератору
 Re: Обновление значений элементов на странице. Visual Studio 2015, Windows 10, C#, UWP  [new]
Roman Mejtes
Member

Откуда: г. Пермь
Сообщений: 3305
INotifyPropertyChanged?
Учтите, что событие Loaded можно быть вызвано # раз, это событие не предназначено не для этого и может ошибаюсь, но возможно она даже маршрутизируемое, но это не точно
11 янв 19, 12:19    [21782639]     Ответить | Цитировать Сообщить модератору
 Re: Обновление значений элементов на странице. Visual Studio 2015, Windows 10, C#, UWP  [new]
mserjo
Member

Откуда:
Сообщений: 54
пример для элементов RadioButton.

SettingsMainView.xaml:
<RadioButton Name="RadioButton1" IsChecked="{Binding Path=Param01, Converter={StaticResource enumBooleanConverter}, ConverterParameter="AA"}" Loaded="RadioButton1_Loaded" Checked="RadioButton1_Checked">RadioButton-01</RadioButton>
<RadioButton Name="RadioButton2" IsChecked="{Binding Path=Param01, Converter={StaticResource enumBooleanConverter}, ConverterParameter="BB"}" Loaded="RadioButton2_Loaded" Checked="RadioButton2_Checked">RadioButton-02</RadioButton>


SettingsMainView.xaml.cs:
        private void RadioButton1_Loaded(object sender, RoutedEventArgs e)
        {
            if (((SettingsMainViewModel)DataContext).Param01 == "AA")
            {
                RadioButton1.IsChecked = true;
            }
        }
        private void RadioButton2_Loaded(object sender, RoutedEventArgs e)
        {
            if (((SettingsMainViewModel)DataContext).Param01 == "BB")
            {
                RadioButton2.IsChecked = true;
            }
        }
        private void RadioButton1_Checked(object sender, RoutedEventArgs e)
        {
            if (((SettingsMainViewModel)DataContext) != null)
                ((SettingsMainViewModel)DataContext).Param01  = "AA";
        }
        private void RadioButton2_Checked(object sender, RoutedEventArgs e)
        {
            if (((SettingsMainViewModel)DataContext) != null)
                ((SettingsMainViewModel)DataContext).Param01  = "BB";
        }


SettingsMainViewModel.xaml.cs:
        public ParamMode Param01
        {
            get { return ApplicationContext.Param.Mode; }
            set {
                ApplicationContext.Param.Mode = (ParamMode) value;
                OnPropertyChanged("Param01");
            }
        }
        private async void ResetToDefaultMethod()
        {
               // здесь выполняется сброс на значения по умолчанию для всех элементов на странице
                try {
                    ApplicationContext.Param.ResetConfiguration();
                    OnPropertyChanged(string.Empty);
                }
                catch (ApiException ex) {
                    Messenger.ShowErrorMessage(ex);
                }
        }
11 янв 19, 12:46    [21782691]     Ответить | Цитировать Сообщить модератору
Все форумы / WPF, Silverlight Ответить