Indermove
@Indermove
C#/.NET back-end разработчик

Почему не работает привязка результата к свойству Content кнопки в WPF?

Добрый день, товарищи, помогите разобраться со следующим вопросом. Есть вот такая форма:

806c7adc3004484aa284acdb6d8fdd56

Она по идее должна в Content кнопки выводить результат действия некоторой функции. Для всех полей сделана вот такая привязка:

<TextBox Text="{Binding Path=DataModel.A0, UpdateSourceTrigger=PropertyChanged}" Name="dA0" Grid.Row="0" Margin="2,2,2,2" Grid.Column="1"/>
<TextBox Text="{Binding Path=DataModel.B0, UpdateSourceTrigger=PropertyChanged}" Name="dB0" Grid.Row="1" Margin="2,2,2,2" Grid.Column="1"/>
<TextBox Text="{Binding Path=DataModel.L, UpdateSourceTrigger=PropertyChanged}"  Name="dl" Grid.Row="2" Margin="2,2,2,2" Grid.Column="1"/>
<Button Command="{Binding DichotomyCmd}" Content="{Binding Path=DataModel.Ans, UpdateSourceTrigger=PropertyChanged}" Name="dBtn" Height="20" IsEnabled="True" Margin="2,2,2,2" Grid.Row="3" Grid.ColumnSpan="2"/>


public ICommand DichotomyCmd
        {
            get
            {
                if (_dichotomyCmd == null)
                    _dichotomyCmd = new RelayCommand(ExecuteDichotomyCommand, CanExecuteDichotomyCmd);
                return _dichotomyCmd;
            }
        }

        public void ExecuteDichotomyCommand(object parameter)
        {
            DataModel.Ans = Dichotomy(DataModel.A0, DataModel.B0, DataModel.L).ToString();
            DataModel = null;
        }

        public bool CanExecuteDichotomyCmd(object parameter)
        {
            if (DataModel.L == 0 && DataModel.N == 0)
                return false;
            else
                return true;
        }


class DataModel
    {
        public double A0 { get; set; }
        public double B0 { get; set; }
        public int N { get; set; }
        public double L { get; set; }
        public string Ans { get; set; }
        public string _L { get; set; }

        public DataModel()
        {
        }

        public DataModel(double a0, double b0, int n)
        {
            this.A0 = a0;
            this.B0 = b0;
            this.N = N;
        }

        public DataModel(double a0, double b0, float l)
        {
            this.A0 = a0;
            this.B0 = b0;
            this.L = l;
        }
    }


При запуске видно, что функция все вычисляет, но вот результат не отображается. Почему так может быть?

На всякий случай исходный код здесь: https://github.com/Undermove/MethodsMax/tree/maste...

Заранее благодарен за любую информацию, которая наведет на решение вопроса.
  • Вопрос задан
  • 434 просмотра
Решения вопроса 1
dasha_programmist
@dasha_programmist
ex Software Engineer at Reddit TS/React/GraphQL/Go
1) DataModel унаследовать от INotifyPropertyChanged
2) зачем занулять DataModel = null; ссылка на объект теряется
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы