[英]How to hide time from Datetime on Listview if time is 00:00
簡單的情況。 我有一個ItemsSource="{Binding MyModelsList}"
的列表視圖。 MyModelsList是MyModel元素的列表:
public MyViewModel() {
...
_myModelsList = // method that gets items from db
}
private ObservableCollection<MyModel> _myModelsList;
public ObservableCollection<MyModel> MyModelsList
{
// get.. set..
}
...,而MyModel包含一些名為MyDate的Datetime字段。 當我以默認方式聲明MyDate時...
<ListView ItemsSource="{Binding MyModelsList}">
<...>
<Label Content="{Binding MyDate}" />
</...>
</ListView>
...達到以下結果:
9.23.2018
> 9.23.2018
9.23.2018 11:00 AM
我想實現相同的目標,但還沒有完成。 XAML中可能嗎? 我嘗試了不同的ContentStringFormat
但始終結果包含00:00。
我知道在ViewModel中分別聲明MyDate字段時該怎么辦,但是在ViewModel中只有MyList聲明並將其綁定到Listview時該怎么辦?
你有沒有嘗試過
Content="{Binding MyDate, StringFormat=T}".
您可以參考此文檔頁面以獲取DateTime的StringFormat的所有可能值。
如果您仍想隱藏00:00時的時間,可以使用這樣的觸發器
<Label>
<Label.Style>
<Style TargetType="{x:Type Label}">
<Setter Property="Content" Value="{Binding MyDate, StringFormat=T}"/>
<Style.Triggers>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding MyDate.Hour}" Value="0" />
<Condition Binding="{Binding MyDate.Minute}" Value="0" />
<Condition Binding="{Binding MyDate.Second}" Value="0" />
</MultiDataTrigger.Conditions>
<Setter Property="Content" Value=""/>
</MultiDataTrigger>
</Style.Triggers>
</Style>
</Label.Style>
</Label>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.