0
我有一個Label
我綁定DateTime
和string
使用MultiBinding
。 對於DateTime
我想檢查.MinValue
使用DataTrigger
。使用DataTrigger更改TextBlock的樣式,並結合MultiBinding
這是我當前的代碼,我改變的TextBlock
的Text
:
<TextBlock >
<TextBlock.Text>
<MultiBinding StringFormat="{}{0} {1:dd.MM.yyyy} {2:HH:mm:ss}">
<Binding Path="myString" />
<Binding Path="myDate" />
<Binding Path="myDate" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
這是我要如何更改生效日期「 - 」如果它等於DateTime.MinValue
:
<TextBlock.Style>
<Style TargetType="TextBlock">
<Setter Property="Text" Value="{Binding Path=MyDate, StringFormat=d}" />
<Style.Triggers>
<DataTrigger Binding="{Binding MyDate}" Value="{x:Static sys:DateTime.MinValue}">
<Setter Property="Text" Value="-" />
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
不幸的是我對XAML不太熟悉。我很樂意看到這兩個組合。因此,如果myDate等於DateTime.MinDate,TextBox
的Text
將讀取-
,如果在myDate
中存在實際DateTime
,則使用我提供的StringFormat
。謝謝你的幫助!
您可以使用'MultiValueConverter'來產生最終的期望輸出並跳過'Trigger'。 –
你的意思是,把邏輯代碼? – tzippy
是的,確切地說。你創建一個從'IMultiValueConverter'派生的類,在它的'Convert'方法中,你將有一個按照你的'Binding'順序的對象數組,然後你可以嘗試將其轉換爲基礎類型並轉換爲你需要的類型。例如。如果它是'MinValue'返回「 - 」而不是'ToString()'格式的日期/時間。 –