Форум программистов, компьютерный форум, киберфорум
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
389 / 304 / 67
Регистрация: 10.07.2010
Сообщений: 802
1

Двусторонняя привязка данных

19.01.2014, 01:00. Показов 2143. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Имеется некоторый класс
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public class TestClass: INotifyPropertyChanged
{
        string test_text = string.Empty;
        public String TestText
        {
            get { return test_text ; }
            set 
            { 
                 test_text = value; 
                 OnPropertyChanged("TestText"); 
            }
         }
 
        public event PropertyChangedEventHandler PropertyChanged;
 
        protected void OnPropertyChanged(string propName)
        {
            PropertyChangedEventHandler handler = PropertyChanged;
            if (handler != null)
                handler(prop_name, new PropertyChangedEventArgs(propName));
        }
}
Есть TextBox с привязкой:
XML
1
<TextBox Text="{Binding Path=TestText, Mode=TwoWay}/>
DataContext изменяется в коде. Привязка работает в сторону к источнику данных (т.е. если изменяется значение в textBox - изменяется соответствующее поле в классе), но при программном изменении значения в классе, текст в textBox не изменяется. Как исправить?

Если нужно использовать DependencyProperty, то каким образом записать в это свойство значение, т.к. в классе не наследующем элемент управления нет доступа к методу SetValue и GetValue. Какой класс нужно наследовать что бы они появились?

Добавлено через 26 минут
Да, проблема решена - нужно было использовать DependencyProperty, а методы GetValue и SetValue находятся в DependencyObject.
Что то типа такого:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public class TestClass : DependencyObject, INotifyPropertyChanged
    {
        public static readonly DependencyProperty prop = DependencyProperty.Register("TestText", typeof(String), typeof(TestClass));
        public String TestText
        {
            get { return (String)this.GetValue(prop); }
            set
            {
                this.SetValue(prop, value);
                OnPropertyChanged("TestText");
            }
        }
 
        public event PropertyChangedEventHandler PropertyChanged;
 
        protected void OnPropertyChanged(string propName)
        {
            PropertyChangedEventHandler handler = PropertyChanged;
            if (handler != null)
                handler(propName, new PropertyChangedEventArgs(propName));
        }
    }
1
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.01.2014, 01:00
Ответы с готовыми решениями:

Двусторонняя привязка DataGrid
Здравствуйте! При привязки коллекции целых чисел к DataGrid возникла проблема. Хочу сделать, чтобы...

Что такое двусторонняя привязка DataGrid?
Допустим, на грид нужно вывести список объектов(каких не особо важно, пусть они берутся из...

Привязка данных службы данных к элементам управления
Здравствуйте, пытаюсь заточить пример под свои нужды, но ничего не получается, вот код: ...

Привязка данных
Моя программа используя апи Pubg, должна получать данные после поиска и вставлять их на следующую...

2
Почетный модератор
Эксперт С++
5850 / 2861 / 392
Регистрация: 01.11.2011
Сообщений: 6,907
17.04.2018, 11:06 2
Цитата Сообщение от zelen Посмотреть сообщение
Что то типа такого
Какое-то комбо просто.
Мне кажется одного INotifyPropertyChanged здесь хватило бы.

Добавлено через 2 минуты
Хотя нет.
0
3 / 3 / 3
Регистрация: 10.03.2017
Сообщений: 15
17.04.2018, 19:28 3
В принципе и так должно было сработать, без патча если датаконтекст установлен
XML
1
<TextBox Text="{Binding TestText, Mode=TwoWay}/>
0
17.04.2018, 19:28
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.04.2018, 19:28
Помогаю со студенческими работами здесь

Привязка данных
Добавил проект базу данных аксес,пожалуйста помагите,как сделать привязку данных к комбобокс?:wall:

Привязка данных
Такое дело. Как привязать, с помощью Binding, координаты центра прямоугольника и TextBox. Т.е....

Привязка данных
вопрос в следующем: можно-ли значение какого-либо свойства контрола привязать к полю класса?...

Привязка данных
Вопрос наверное нубский, но в копилке знаний пока ответа не нашел:) Описание интерфейса Имеется...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru