Первый вопрос здесь. Во всяком случае, здесь это идет:
У меня есть Windows XAML с большим количеством элементов управления DatePicker (DatePicker из WPFToolkit на CodePlex). Каждый DatePicker имеет значение по умолчанию 1/1/1990, и если никакая другая дата не выбрана, я хочу (или, скорее, мой начальник :-)) отобразить текст серым курсивом, а не черным. Таким образом, это позволяет легко увидеть, какие поля Дата еще не была введена.
Это может быть легко, но я новичок в WPF / XAML. На самом деле, это мои первые шаги, используя его.
Итак, вот что у меня есть и что отлично работает на самом деле:
<Style TargetType="{x:Type my:DatePicker}">
<Style.Triggers>
<Trigger Property="Text" Value="1/1/1990">
<Setter Property="Foreground" Value="DarkGray"/>
<Setter Property="ToolTip" Value="Please select a date"/>
<Setter Property="FontStyle" Value="Italic"/>
</Trigger>
</Style.Triggers>
</Style>
Проблема в том, что она не работает на каждой машине из-за проблем локализации / региональных настроек.
Итак, я попробовал это:
<Style TargetType="{x:Type my:DatePicker}">
<Style.Triggers>
<Trigger Property="Text" Value="{Binding Source={x:Static p:Settings.Default}, Path=MinDate, Mode=TwoWay}">
<Setter Property="Foreground" Value="DarkGray"/>
<Setter Property="ToolTip" Value="Veuillez choisir une date"/>
<Setter Property="FontStyle" Value="Italic"/>
</Trigger>
</Style.Triggers>
</Style>
Обратите внимание на разницу в свойстве «Значение» триггера. Это приводит к следующей ошибке:
«Связывание» не может быть установлено на
Свойство «Значение» типа «Триггер».
«Связывание» может быть установлено только на
Зависимость свойства
DependencyObject.
Что я понимаю, и я понимаю, почему это не работает. (Обратите внимание, что MinDate имеет тип DateTime со значением 1/1/1990)
Итак, как мне добиться результата от моего первого фрагмента кода на всех компьютерах?
Спасибо за время.