none
По Datacontext и полям RRS feed

  • Вопрос

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

    В этом классе вычисления или какие то действия можно делать?

    Если можно то как будет выглядеть поле в следующем примере

    namespace TestDataContextMetro
    {
        public class FirstClass : INotifyPropertyChanged
        {
            #region Обновление
            public event PropertyChangedEventHandler PropertyChanged;
            protected bool SetProperty<T>(ref T storage, T value, [CallerMemberName] String propertyName = null)
            {
                if (object.Equals(storage, value)) return false;
                storage = value;
                this.OnPropertyChanged(propertyName);
                return true;
            }
            protected void OnPropertyChanged([CallerMemberName] string propertyName = null)
            {
                var eventHandler = this.PropertyChanged;
                if (eventHandler != null)
                {
                    eventHandler(this,
                    new PropertyChangedEventArgs(propertyName));
                }
            }
            #endregion
    
            private double _slvsmax;
            public double SlvsMax
            {
                get { return _slvsmax; }
                set { SetProperty(ref _slvsmax, value); }
            }
    
            public void sdf(int s)
            {
                s = 5 + s;
    
            }

    суть такая - Из основного окна я передаю значение в метод sdf(5)

    в основном окне у меня есть привязка к полю SlvsMax.

    Как изменится в поле SlvsMax

    set { SetProperty(ref _slvsmax, value); }
    
    чтобы в основном окне отразилось 10


    Спасибо

    12 февраля 2013 г. 11:12

Ответы

  • У вас появилась масса вопросов по основам и организации кода, поэтому я бы настоятельно рекомендовал бы вам почитать о модели MVVM.

    На тему вопроса. Делайте в вашем классе, что хотите, если такая организация вам удобно.Давайте рассмотрим ситуацию, что у нас есть некая программа которая показывает время до нового года. Мы создаем класс с полем для оставшегося времени и в этом же классе делаем таймер и процедуру расчета. Таймер каждую секунду вызывает процедуру просчета, а та устанавливает поле к которому идет привязка. Это один пример, бывают другие. Методы внутри класса могут быт приватными, а могут быть открытыми и к ним вы будете обращаться из кода.

    Вот еще для понимания ситуации. Slider это тоже класс к полям которого так же можно привязываться и экземпляр класса можно указывать как DataContext. Но помимо этого Slider содержит ряд методов и функций к которым можно обращаться, а еще много из них являются приватными. Модель вашего контекста данных сугубо ваше дело если вы не используете паттерн. В противном случае модель определяется паттерном. Хотите стандартизацию почитайте ссылку выше.


    Женат на WPF. Тайно встречаюсь с WinRT. Не сложилось с C#!

    • Помечено в качестве ответа developers_s 14 февраля 2013 г. 3:46
    12 февраля 2013 г. 12:41
    Отвечающий