Combine multiple Converters into one pipeline.
<TextBlock Visibility="{Binding DescriptionText, Converter={markup:Compose
{StaticResource IsNullOrEmptyOperator},
{StaticResource NotConverter},
{StaticResource BooleanToVisibilityConverter}}}"
Text="{Binding DescriptionText}" />
Using the Conditional expression
in XAML.
<Button Command="{markup:If {Binding BoolProperty},
{Binding OkCommand},
{Binding CancelCommand}}" />
<UserControl>
<markup:If Condition="{Binding IsLoading}">
<markup:If.True>
<views:LoadingView />
</markup:If.True>
<markup:If.False>
<views:LoadedView />
</markup:If.False>
</markup:If>
</UserControl>
Using the Switch expression
in XAML.
<Image Source="{markup:Switch {Binding FileType},
{Case {x:Static res:FileType.Music}, {StaticResource MusicIcon}},
{Case {x:Static res:FileType.Video}, {StaticResource VideoIcon}},
{Case {x:Static res:FileType.Picture}, {StaticResource PictureIcon}},
...
{Case {StaticResource UnknownFileIcon}}}" />
<UserControl>
<Switch To="{Binding SelectedViewName}">
<Case Label="View1">
<views:View1 />
</Case>
<Case Label="{x:Static res:Views.View2}">
<views:View2 />
</Case>
<Case>
<views:View404 />
</Case>
</Switch>
</UserControl>
Dynamically switch the culture resource without restarting the app.
<TextBlock Text="{markup:I18n {x:Static languages:UiStrings.MainWindow_Title}}" />
<TextBlock Text="{markup:I18nString {x:Static languages:UiStrings.SayHello}, {Binding Username}}" />
<TextBlock Text="{markup:I18nString {x:Static languages:UiStrings.StringFormat},
{Binding Arg0},
{Binding Arg1},
...,
{Binding Arg15}}" />
<Button Style="{markup:Styles {StaticResource FlatButtonStyle},
{StaticResource AnimationStyle},
...}" />