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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Опять биндинг 
:(
    Опции темы
DenWPF
Дата 14.3.2010, 11:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



У меня есть класс в нем поле int Status
как сделать что бы биндинг если в статусе 1 - то писалось "Активно" 2 - "Не активно"

и сюда же

если в статусе 1 - то задний фон Черный 2 -  Красный

Это сообщение отредактировал(а) DenWPF - 14.3.2010, 11:53
PM MAIL   Вверх
snav
Дата 14.3.2010, 19:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Привязка данных работает только со свойствами, причем как минимум одно из свойств должно быть DependencyProperty.
Например, вы можете сделать свойство int Status { set; get } и использовать это свойство как источник данных привязки.
PM   Вверх
DenWPF
Дата 14.3.2010, 22:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



круто, но это я понимаю.
но как сделать привязку 
{Binding Status} - и если там 1 то подставлять Красный а если 2 то белый
PM MAIL   Вверх
SergeyLoginov
Дата 15.3.2010, 17:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Например, использовать Converter.
Код

    public class  StatusToBackGroundConverter : IValueConverter
    {

        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            int status = (int)value;
            if (status == 1)
                return Brushes.Black;
            else
                return Brushes.Red;            
        }


        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            return value;
        }
    }

Код

<... Background={Binding Status, Converter={StaticResource StatusToBackGround}}

где в ресурсах (к примеру, окна) объявлен экземпляр StatusToBackGroundConverter с ключом StatusToBackGround:
Код

    <Window.Resources>
        <ResourceDictionary>
            <local:StatusToBackGroundConverter x:Key="StatusToBackGround"/>
        </ResourceDictionary>
    </Window.Resources>

PM MAIL   Вверх
Partizan
Дата 16.3.2010, 00:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

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



Ну и + чтобы у нас срабатывал binding на изменение статуса, не забываем сделать свойство Status dependency property, либо реализуем INotifyPropertyChanged.


--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
DenWPF
Дата 16.3.2010, 13:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



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


 




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


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

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