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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как привязаться к статическому полю класса, из сторонней dll 
:(
    Опции темы
ДобренькийПапаша
Дата 5.8.2011, 10:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 14.1.2006
Где: г.Москва

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



Надо привязать свойство IsChecked элемента ComboBox к статическому полю статического класса, который находится в сторонней сборке.
Какой синтаксис в таком случае?


--------------------
Меня зовут Себастьян Парейра, торговец чёрным деревом.
PM MAIL   Вверх
SergeyLoginov
Дата 5.8.2011, 10:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Для привязки нужен источник привязки. Насколько я знаю, к статическому свойству привязку делать нельзя. Если ошибаюсь, буду признателен, если кто-то опровергнет примером кода.
Можно только присвоить значение:
Код

<CheckBox IsChecked="{x:Static local:MyClass.StaticProperty}"/>

Лично я при необходимости привязки к статическому свойству делаю примерно следующее:
Код

public class MyClass
    {
        private static StaticInfo staticInfo;

        public static StaticInfo StaticInfo
        {
            get 
            {
                if (staticInfo == null)
                {
                    staticInfo = new StaticInfo();
                }
                return staticInfo; 
            }            
        }
    }
    public class StaticInfo : System.ComponentModel.INotifyPropertyChanged
    {
        private bool booleanProperty;
        /// <summary>
        /// Свойство для IsChecked
        /// </summary>
        public bool BooleanProperty
        {
            get { return booleanProperty; }
            set 
            {
                if (booleanProperty != value)
                {
                    booleanProperty = value;
                    OnPropertyChanged("BooleanProperty");
                }
            }
        }
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        private void OnPropertyChanged(string propertyName)
        {
            if (PropertyChanged != null)
            {
                PropertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }


Код

<CheckBox IsChecked="{Binding BooleanProperty, Source={x:Static local:MyClass.StaticInfo}}"/>


К сожалению, если ты имеешь дело со сторонней разработкой, то придется что-то наворачивать дополнительно. Можно просто в свойстве BooleanProperty возвращать и присваивать значение того самого статического свойства. В принципе, работать будет. Красоты, правда, маловато.

Добавлено через 1 минуту и 25 секунд
К полю, кстати, привязаться в принципе нельзя. Привязаться можно только к публичному свойству.
PM MAIL   Вверх
ДобренькийПапаша
Дата 5.8.2011, 13:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 14.1.2006
Где: г.Москва

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



Цитата(SergeyLoginov @  5.8.2011,  10:53 Найти цитируемый пост)
К полю, кстати, привязаться в принципе нельзя. Привязаться можно только к публичному свойству. 

Фу, оговорился. Это разумеется.
Да, к сожалению, реализовать интерфейс не смогу. Ладно, буду думать. Всё равно спасибо за помощь.


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


 




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


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

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