В форме Winforms я хочу предоставить пользователю визуальные подсказки, когда поле ввода содержит недопустимое значение. С этой целью, Я хочу связать свойство ForeColor
метки поля ввода со свойством (логическим) IsPropertyValid
базовой модели, чтобы метка становилась красной, когда IsPropertyValid == false
.
В настоящее время у меня есть обработчик события для события формата привязки
:
Controls["dateOfBirthLabel"].DataBindings["ForeColor"].Format += convertBoolToColor;
// (dateOfBirthLabel.ForeColor is bound to a boolean IsDateOfBirthValid property.)
void convertBoolToColor(object sender, ConvertEventArgs e)
{
e.Value = (bool)e.Value ? Color.Black : Color.Red;
}
Если бы я хотел сделать это в WPF, то, я полагаю, я бы указал специальный преобразователь значения ( bool
- Color
) непосредственно со связыванием в XAML. Самое главное, мне не пришлось бы ссылаться на конкретный элемент управления через его имя.
Я хотел бы сделать то же самое с моей формой Winforms. В идеале я мог бы указать объект TypeConverter
для конкретной привязки непосредственно в конструкторе форм.
true.object_id // 2
nil.object_id // 4
100 ....
Я играю с Ruby .object_id
и заметил, что в нескольких последовательных сеансах irb я получаю такие же результаты:
false.object_id // 0
true.object_id // 2
nil.object_id // 4
100.object_id // 201
На самом деле, каждый целочисленный object_id кажется быть ((значение * 2) + 1).
С другой стороны, object_id данной строки никогда не будет прежним после выхода и повторного запуска irb.
Это вызывает у меня несколько вопросов:
object_id
? Являются ли другие в основном случайными? Я читал, что после ручной установки некоторых плагинов Eclipse следует использовать параметр -clean
для запуска Eclipse. Почему или что это делает?
Должен ли я сделать что-то еще?
Этот вопрос относится, в частности, к «Затмению Галилео» и Гелиосу.
Нет, вы можете просто запустить eclipse.
В статье « поддержание чистоты работы eclipse » подробно описаны различные варианты использования опции «-clean».
Самый простой способ исправить запыленное рабочее пространство - использовать аргумент командной строки -clean для исполняемого файла eclipse.exe. Давайте посмотрим, что эта команда сообщает в справочной документации Eclipse:
если задано значение «true», все кэшированные данные, используемые фреймворком OSGi и средой выполнения eclipse, будут очищены. Это очистит кеши, используемые для хранения данных разрешения зависимостей пакетов и данных реестра расширений eclipse. Использование этой опции заставит eclipse повторно инициализировать эти кеши.
Аргумент
-clean
- это флаг одноразового использования, означающий, что после того, как вы запустили Eclipse с его помощью, вы можете удалить его, пока он вам снова не понадобится .
Если вы предпочитаете оставить его установленным, единственный побочный эффект от его использования - это увеличение времени запуска (в 2-3 раза дольше), что некоторые люди не возражают.Теперь, возвращаясь к описанию выше, это может показаться не таким уж большим, я должен сказать, что вы были бы поражены тем, что иногда можно исправить с помощью -clean; некоторые действительно случайные вещи. Есть три простых способа использовать этот аргумент:
- Отредактируйте файл eclipse.ini, расположенный в вашем каталоге установки Eclipse , и добавьте его в качестве первого аргумента в первой строке.
- Отредактируйте ярлык, который вы используете для запуска Eclipse, и добавьте его в качестве первого аргумента.
- Создайте пакетный сценарий или сценарий оболочки, который вызывает исполняемый файл Eclipse с аргументом -clean. Преимущество этого шага в том, что вы можете сохранить сценарий и использовать его каждый раз, когда хотите очистить рабочее пространство. Вы можете назвать его как-то вроде eclipse-clean.bat (или eclipse-clean.sh).
Если вы разрабатываете подключаемые модули Eclipse, вы хотите использовать параметр -clean
в приложении Eclipse, которое вы запускаете для тестирования своих подключаемых модулей.
В противном случае, как уже ответил VonC, -clean
- это одноразовый флаг, означающий, что после того, как вы запустили Eclipse с его помощью, вы можете удалить его, пока он вам снова не понадобится.