Модераторы: gambit, Kefir, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Биндинг TextBox'а, не отображаются данные в полях 
V
    Опции темы
dAlex
Дата 14.1.2011, 14:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 208
Регистрация: 3.8.2006
Где: Санкт-Петербург

Репутация: нет
Всего: 2



пытаюсь сделать DataBinding с даблами и текстбоксом, примерно так
Код


    public partial class Window1 : INotifyPropertyChanged
    {
        private PropertyChangedEventHandler _propertyChanged;

        event PropertyChangedEventHandler INotifyPropertyChanged.PropertyChanged
        {
            add { _propertyChanged += value; }
            remove { _propertyChanged -= value; }
        }
        private void NotifyPropertyChanged(string info)
        {
            if (_propertyChanged != null)
                _propertyChanged(this, new PropertyChangedEventArgs(info));
        }

        private double _h;

        public string h
        {
            get { return _h.ToString(); }
            set
            {
                _h = int.Parse(value);
                NotifyPropertyChanged("h");
            }
        }

        public Window1()
        {
            InitializeComponent();
            DataContext = this;
        }

Код

<TextBox DataContext="{Binding Path=h}" />

В итоге поле пустое все равно


Это сообщение отредактировал(а) dAlex - 14.1.2011, 14:41
--------------------
eof()
PM WWW ICQ GTalk Jabber   Вверх
jonie
Дата 14.1.2011, 15:02 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 2
Всего: 118



dAlex, в окне Output студии что печатается? Уж не ошибка ли биндинга там проскакивает?)


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
dAlex
Дата 14.1.2011, 15:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 208
Регистрация: 3.8.2006
Где: Санкт-Петербург

Репутация: нет
Всего: 2



jonie, офигеть, и правда какие-то ошибки бидинга, сейчас буду смотреть. Что-то и не юзала это окно раньше почему-то. Спасибо =))

Добавлено через 5 минут и 28 секунд
jonie, эти ошибки в других биндингах =) про этот молчок
--------------------
eof()
PM WWW ICQ GTalk Jabber   Вверх
jonie
Дата 14.1.2011, 18:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 2
Всего: 118



Потому что:
Код

<TextBox Text="{Binding Path=h, Mode=TwoWay}"/>

надобно.


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
dAlex
Дата 15.1.2011, 00:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 208
Регистрация: 3.8.2006
Где: Санкт-Петербург

Репутация: нет
Всего: 2



jonie, надо будет почитать про режимы, пока мало работала с такими штуками =) спасибо большое, попробую =)
--------------------
eof()
PM WWW ICQ GTalk Jabber   Вверх
jonie
Дата 15.1.2011, 11:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 2
Всего: 118



dAlex, там не режим изменен, а еще и свойство другое биндится.


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
dAlex
Дата 18.1.2011, 12:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 208
Регистрация: 3.8.2006
Где: Санкт-Петербург

Репутация: нет
Всего: 2



jonie
   вот же она, сила копипаста, точно, какой там DataContext, shame on me. Спасибо огромное =)
--------------------
eof()
PM WWW ICQ GTalk Jabber   Вверх
dAlex
Дата 30.1.2011, 23:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 208
Регистрация: 3.8.2006
Где: Санкт-Петербург

Репутация: нет
Всего: 2



а нет, все же косяк. При запуске программы данные в полях есть, но при их изменении они не обновляются. В какую сторону копать? Таким же образом был сделан биндинг ListView, там все в порядке
--------------------
eof()
PM WWW ICQ GTalk Jabber   Вверх
dAlex
Дата 31.1.2011, 10:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 208
Регистрация: 3.8.2006
Где: Санкт-Петербург

Репутация: нет
Всего: 2



получилось только таким извратским способом
Код

TextBox1.GetBindingExpression( TextBox.TextProperty).UpdateTarget()

--------------------
eof()
PM WWW ICQ GTalk Jabber   Вверх
gambit
Дата 31.1.2011, 14:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***
Награды: 1



Профиль
Группа: Комодератор
Сообщений: 1359
Регистрация: 25.6.2006
Где: я?

Репутация: нет
Всего: 40



Цитата(dAlex @  30.1.2011,  23:20 Найти цитируемый пост)
При запуске программы данные в полях есть, но при их изменении они не обновляются

Код

Text="{Binding Path=h, UpdateSourceTrigger=PropertyChanged}"

А что бы избежать такого изврата:
Код

private double _h;
        public string h
        {
            get { return _h.ToString(); }
            set
            {
                _h = int.Parse(value);
                NotifyPropertyChanged("h");
            }
        }

посмотрите что такое конвертеры.

ps. Вдруг кому пригодится, когда то написал сниппет, для автоматического добавления NotifyPropertyChanged("h"); в свойства.
Код

<?xml version="1.0" encoding="utf-8" ?>
<CodeSnippets  xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
  <CodeSnippet Format="1.0.0">
    <Header>
      <Title>propvm</Title>
      <Shortcut>propvm</Shortcut>
      <Description>Code snippet for property and backing field</Description>
      <Author>Microsoft Corporation</Author>
      <SnippetTypes>
        <SnippetType>Expansion</SnippetType>
      </SnippetTypes>
    </Header>
    <Snippet>
      <Declarations>
        <Literal>
          <ID>type</ID>
          <ToolTip>Property type</ToolTip>
          <Default>string</Default>
        </Literal>
        <Literal>
          <ID>property</ID>
          <ToolTip>Property name</ToolTip>
          <Default>MyProperty</Default>
        </Literal>
        <Literal>
          <ID>field</ID>
          <ToolTip>The variable backing this property</ToolTip>
          <Default>myVar</Default>
        </Literal>
      </Declarations>
      <Code Language="csharp">
        <![CDATA[private $type$ $field$;

    public $type$ $property$
    {
        get { return $field$;}
        set
    {
    $field$ = value;
    RaisePropertyChanged("$property$");
    }
    }
    $end$]]>
      </Code>
    </Snippet>
  </CodeSnippet>
</CodeSnippets>

PM MAIL ICQ Skype   Вверх
Brilona
Дата 31.1.2011, 15:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 54
Регистрация: 8.7.2008

Репутация: 2
Всего: 3



Сниппет - вещь полезная smile Спасибо!
PM MAIL ICQ   Вверх
Kaerus
Дата 31.1.2011, 17:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


WPF'er
*


Профиль
Группа: Участник
Сообщений: 89
Регистрация: 3.9.2010

Репутация: 1
Всего: 1



Не могу говорить за Prism, но в MVVM Toolkit такие шорткаты в комплекте уже идут. Хотя я тоже свой написал, ибо там они слишком громозкие (зато составлены по всем правилам хорошего кодинга)
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | WPF и Silverlight | Следующая тема »


 




[ Время генерации скрипта: 0.0838 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.