Формат строки привязки DateTime XAML для отображения «null» для DateTime.MinValue - PullRequest
5 голосов
/ 27 июня 2011

У меня есть привязка к дате:

<TextBlock Text="{Binding Path=EndDateTime, StringFormat=d}"/>

Я хочу, чтобы при значении DateTime.MinValue (значение по умолчанию для DateTime) вместо даты отображался ноль.

Возможно ли это без с использованием конвертера, просто каким-то образом расширив свойство StringFormat моей привязки?

Есть ли какое-либо другое решение только для XAML ?

Заранее спасибо!

Ответы [ 2 ]

10 голосов
/ 27 июня 2011

Вы можете использовать DataTrigger в стиле TextBlock

<TextBlock>
    <TextBlock.Style>
        <Style TargetType="TextBlock">
            <Setter Property="Text" Value="{Binding Path=EndDateTime, StringFormat=d}" />
            <Style.Triggers>
                <DataTrigger Binding="{Binding EndDateTime}" Value="{x:Static sys:DateTime.MinValue}">
                    <Setter Property="Text" Value="NULL" />
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </TextBlock.Style>
</TextBlock>
0 голосов
/ 27 июня 2011

В Silverlight 4 не существует единственного решения для XAML. В Silverlight 5 вы можете использовать расширение разметки, хотя этот код все равно придется писать.В Silverlight 4 вы также можете использовать Поведение.

Я предлагаю выставить свойство в вашей ViewModel, которое обеспечивает нулевую функциональность.Тогда вам не придется использовать конвертер, хотя свойство, к которому вы привязываете, будет работать так, как вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...