TimeSpan 値の StringFormatConverter ConverterParameter を作成する UWP でこの問題が発生しました。TimeSpan.ToString(x) カスタム フォーマット文字列では、DateTimeOffset ではなくても、なんらかの理由でリテラル文字の前後にアポストロフィが必要です。不必要に矛盾しているようです。
とにかく...上記のどれもうまくいきませんでした。1 つのアプローチは、XAML デザイナーを表示/動作させる限りは機能しましたが、ビルド エラーが発生しました。
私が解決した解決策は、フォーマット文字列を最も近い外側の要素の文字列リソースに入れることでした。Border を使用して作成されたボックスに値を表示していたので、書式文字列を Border 要素のリソースに詰め込みました。
StringFormatConverter は、NuGet の Microsoft UWP Toolkit のものです。
<StackPanel Orientation="Horizontal">
<TextBlock Text="Timespan=" />
<Border BorderBrush="Black" BorderThickness="0.5" Padding="2">
<Border.Resources>
<x:String x:Key="TimespanValueConverterParameter">{0:hh':'mm':'ss'.'fff}</x:String>
</Border.Resources>
<TextBlock Text="{Binding TimespanValue, Mode=OneWay, Converter={StaticResource StringFormatConverter}, ConverterParameter={StaticResource TimespanValueConverterParameter}}" />
</Border>
</StackPanel>