Никакие сложные стандартные программы форматирования даты/времени не существуют в JavaScript.
необходимо будет пользоваться внешней библиотекой для вывода отформатированной даты, "Формат даты JavaScript" от Скандального Badassery выглядит очень перспективным.
Для входного преобразования, несколько предложений уже были сделаны.:)
ListBox содержит свойство HasItems , к которому вы можете выполнить привязку. Так что вы можете просто сделать это:
<BooleanToVisibilityConverter x:Key="BooleanToVisibility" />
...
<ListBox
Visibility="{Binding HasItems,
RelativeSource={RelativeSource Self},
Converter=BooleanToVisibility}" />
Или в качестве триггера, чтобы вам не понадобился конвертер:
<ListBox>
<ListBox.Style>
<Style TargetType="{x:Type ListBox}">
<Setter Property="Visibility" Value="Visible" />
<Style.Triggers>
<DataTrigger
Binding="{Binding HasItems, RelativeSource={RelativeSource Self}}"
Value="False">
<Setter Property="Visibility" Value="Hidden" />
</DataTrigger>
</Style.Triggers>
</Style>
</ListBox.Style>
</ListBox>
Я не тестировал привязки, поэтому могут быть некоторые опечатки, но вы должны уловить идею.
Сделайте это в триггере, и вам не понадобится ValueConverter:
<ListBox>
<ListBox.Style>
<Style TargetType="{x:Type ListBox}">
<Style.Triggers>
<DataTrigger
Binding="Items.Count, {Binding RelativeSource={RelativeSource Self}}"
Value="0">
<Setter Property="Visibility" Value="Hidden" />
</DataTrigger>
</Style.Triggers>
</Style>
</ListBox.Style>
</ListBox>
Таким образом, по умолчанию отображается ListBox, но если Items.Count всегда равен 0, ListBox скрыт.
Вы, вероятно, сможете выполнить эту работу, используя ValueConverter и обычную привязку.
Установите для параметра Visibility значение:
Visibility = "{Binding myListbox.Items.Count, Converter={StaticResource VisibilityConverter}}"
Затем настройте преобразователь для возврата значения Visibility.Collapsed и т. Д. На основе значения параметра граф.