none
Ещё раз про Unloaded RRS feed

  • Вопрос

  • Никак не могу настроить всё таки действие при Unloaded UserControl

    Подскажите пожалуйста у меня нет кнопки сохранить. Всё сохраняется при удалении UserControl из Grid, Т.е. при закрытии UIserControl. Поэтому нажать кнопку и по Icommand запустить сохранение никак не могу.

            public bool MyProperty
            {
                get { return (bool)GetValue(MyPropertyProperty); }
                set { SetValue(MyPropertyProperty, value); }
            }
            public static readonly DependencyProperty MyPropertyProperty =
                DependencyProperty.Register("MyProperty", typeof(bool), typeof(BuildingsVM), new PropertyMetadata(false,Unload()));
    
            private static PropertyChangedCallback Unload()
            {
                SaveDataMetod();
            }

    Сейчас сохранение по команде

            public BuildingsVM()
            {
                SaveCommand = new SimpleCommand(SaveDataMetod);
            }

    <Button Width="100" Height="50" Command="{Binding SaveCommand}">

    Но кнопку придётся убрать.

    Если привязываться к изменению свойства, то какое поле и какого типа подключить к событию

                 d:DesignHeight="300" d:DesignWidth="300" Loaded="UserControl_Loaded" Unloaded="{Binding MyProperty}">

    Спасибо



    • Изменено DevingAs 8 июня 2016 г. 8:58

Ответы

  • Unloaded это событие, а не свойство. Как вы к нему привязываетесь?

    Вообще ваш подход изначально не верен. Вы пытаетесь работать с данными из вью модели, а это нужно делать на другом уровне.

    Какое я вижу решение - Grid привязан к коллекции. У любой коллекции (ну почти у любой) есть события изменения этой коллекции. В этом событии можно узнать какое изменение произошло и если это удаление, то какой элемент был удален. Соответственно там же можно вызвать и сохранение.


    VB.Net - WPF, UWP

    • Помечено в качестве ответа DevingAs 9 июня 2016 г. 10:13
    8 июня 2016 г. 16:48
    Отвечающий