Chapter.Net.WPF.Converters
1.1.0
See the version list below for details.
dotnet add package Chapter.Net.WPF.Converters --version 1.1.0
NuGet\Install-Package Chapter.Net.WPF.Converters -Version 1.1.0
<PackageReference Include="Chapter.Net.WPF.Converters" Version="1.1.0" />
paket add Chapter.Net.WPF.Converters --version 1.1.0
#r "nuget: Chapter.Net.WPF.Converters, 1.1.0"
// Install Chapter.Net.WPF.Converters as a Cake Addin #addin nuget:?package=Chapter.Net.WPF.Converters&version=1.1.0 // Install Chapter.Net.WPF.Converters as a Cake Tool #tool nuget:?package=Chapter.Net.WPF.Converters&version=1.1.0
Chapter.Net.WPF.Converters Library
Overview
Chapter.Net.WPF.Converters provides a bunch of useful converters to be used in XAMLs.
Features
- BooleanToIntegerConverter: Converts an boolean to its integer representation and back.
- BooleanToVisibilityInvertedConverter: Converts true to Visible false to Collapsed. (The opposite of BooleanToVisibilityConverter).
- ConcatenateStringConverter Concatenates a given list of objects to a single string with a separator.
- CountToBooleanConverter: Converts a count to its boolean representation.
- CountToVisibilityConverter: Converts a count to its visibility representation.
- DateOnlyToStringConverter: Converts the given date only to a string by Format.
- DateTimeToStringConverter: Converts the given date time to a string by Format.
- DateTimeUtcConverter: Converts the given date time to universal or local time.
- DoubleValueToThicknessConverter: Converts a value to a thickness by telling for what that value it.
- EqualsToBooleanConverter: Equals two values and returns its result.
- EqualsToVisibilityConverter: Equals two values and returns its visibility representation.
- IntegerToBooleanConverter: Converts an integer to its boolean representation and back.
- InverseBooleanConverter: Converts a boolean to is opposite.
- IsLastItemInListConverter: Checks if the given item container is the last in the list.
- MultiBooleanToBooleanConverter Merges a bunch of booleans to a single boolean.
- MultiBooleanToVisibilityConverter Merges a bunch of booleans to a single visibility representation.
- MultiEqualsToBooleanConverter: Equals multiple values and returns its result.
- MultiEqualsToVisibilityConverter: Equals multiple values and returns its visibility representation.
- MultiValueToPathConverter: Combines all given strings into a path.
- MultiValueToThicknessConverter: Creates a new thickness object by the given values.
- NullToBooleanConverter: Converts the null or not null value to bool with an optional direction parameter.
- NullToVisibilityConverter: Converts the null or not null value to Visibility with an optional direction parameter.
- PathToStringConverter: Converts a full path to a section from it.
- TimeOnlyToStringConverter: Converts the given time only to a string by Format.
Getting Started
Installation:
- Install the Chapter.Net.WPF.Converters library via NuGet Package Manager:
dotnet add package Chapter.Net.WPF.Converters
BooleanToIntegerConverter:
- Usage
<converters:BooleanToIntegerConverter x:Key="BooleanToIntegerConverter" /> <controls:TitledItem Title="BooleanToIntegerConverter"> <StackPanel Orientation="Horizontal"> <CheckBox x:Name="checked1" Content="Checked" /> <TextBlock Margin="10,0" Text="->" /> <TextBlock Text="{Binding IsChecked, ElementName=checked1, Converter={StaticResource BooleanToIntegerConverter}}" /> </StackPanel> </controls:TitledItem>
BooleanToVisibilityInvertedConverter:
- Usage
<converters:BooleanToVisibilityInvertedConverter x:Key="BooleanToVisibilityInvertedConverter" /> <controls:TitledItem Title="BooleanToVisibilityInvertedConverter"> <StackPanel Orientation="Horizontal"> <CheckBox x:Name="checked2" Content="Checked" /> <TextBlock Margin="10,0" Text="->" /> <TextBlock Text="{Binding IsChecked, ElementName=checked2, Converter={StaticResource BooleanToVisibilityInvertedConverter}}" /> </StackPanel> </controls:TitledItem>
ConcatenateStringConverter:
- Usage
<converters:ConcatenateStringConverter x:Key="ConcatenateStringConverter" Separator="." /> <controls:TitledItem Title="ConcatenateStringConverter"> <StackPanel Orientation="Horizontal"> <StackPanel> <TextBox Width="100" Text="{Binding Text7, UpdateSourceTrigger=PropertyChanged}" /> <TextBox Width="100" Text="{Binding Text8, UpdateSourceTrigger=PropertyChanged}" /> <TextBox Width="100" Text="{Binding Text9, UpdateSourceTrigger=PropertyChanged}" /> </StackPanel> <TextBlock Margin="10,0" VerticalAlignment="Center" Text="->" /> <TextBlock VerticalAlignment="Center"> <TextBlock.Text> <MultiBinding Converter="{StaticResource ConcatenateStringConverter}"> <Binding Path="Text7" /> <Binding Path="Text8" /> <Binding Path="Text9" /> </MultiBinding> </TextBlock.Text> </TextBlock> </StackPanel> </controls:TitledItem>
CountToBooleanConverter:
- Usage
<converters:CountToBooleanConverter x:Key="CountToBooleanConverter" /> <controls:TitledItem Title="CountToBooleanConverter"> <StackPanel Orientation="Horizontal"> <TextBox Width="30" Text="{Binding Integer1, UpdateSourceTrigger=PropertyChanged}" /> <TextBlock Margin="10,0" Text="->" /> <TextBlock Text="{Binding Integer1, Converter={StaticResource CountToBooleanConverter}}" /> </StackPanel> </controls:TitledItem>
CountToVisibilityConverter:
- Usage
<converters:CountToVisibilityConverter x:Key="CountToVisibilityConverter" /> <controls:TitledItem Title="CountToVisibilityConverter"> <StackPanel Orientation="Horizontal"> <TextBox Width="30" Text="{Binding Integer2, UpdateSourceTrigger=PropertyChanged}" /> <TextBlock Margin="10,0" Text="->" /> <TextBlock Text="{Binding Integer2, Converter={StaticResource CountToVisibilityConverter}}" /> </StackPanel> </controls:TitledItem>
DateOnlyToStringConverter:
- Usage
<converters:DateOnlyToStringConverter x:Key="DateOnlyToStringConverter" Format="LongDateString" /> <controls:TitledItem Title="DateOnlyToStringConverter"> <StackPanel Orientation="Horizontal"> <TextBlock Text="LongDateString" /> <TextBlock Margin="10,0" Text="->" /> <TextBlock Text="{Binding DateOnly1, Converter={StaticResource DateOnlyToStringConverter}}" /> </StackPanel> </controls:TitledItem>
DateTimeToStringConverter:
- Usage
<converters:DateTimeToStringConverter x:Key="DateTimeToStringConverter" Format="FullDateTimePattern" /> <controls:TitledItem Title="DateTimeToStringConverter"> <StackPanel Orientation="Horizontal"> <TextBlock Text="FullDateTimePattern" /> <TextBlock Margin="10,0" Text="->" /> <TextBlock Text="{Binding DateTime1, Converter={StaticResource DateTimeToStringConverter}}" /> </StackPanel> </controls:TitledItem>
DateTimeUtcConverter:
- Usage
<converters:DateTimeUtcConverter x:Key="DateTimeUtcConverter" ToUniversalTime="True" /> <controls:TitledItem Title="DateTimeUtcConverter"> <StackPanel Orientation="Horizontal"> <TextBlock Text="ToUniversalTime" /> <TextBlock Margin="10,0" Text="->" /> <TextBlock Text="{Binding DateTime1, Converter={StaticResource DateTimeUtcConverter}}" /> </StackPanel> </controls:TitledItem>
DoubleValueToThicknessConverter:
- Usage
<converters:DoubleValueToThicknessConverter x:Key="DoubleValueToThicknessConverter" Position="LeftRight" /> <controls:TitledItem Title="DoubleValueToThicknessConverter"> <StackPanel Orientation="Horizontal"> <TextBox Width="30" Text="{Binding Double1, UpdateSourceTrigger=PropertyChanged}" /> <TextBlock Margin="10,0" Text="->" /> <TextBlock Text="{Binding Double1, Converter={StaticResource DoubleValueToThicknessConverter}}" /> </StackPanel> </controls:TitledItem>
EqualsToBooleanConverter:
- Usage
<converters:EqualsToBooleanConverter x:Key="EqualsToBooleanConverter" /> <controls:TitledItem Title="EqualsToBooleanConverter"> <StackPanel Orientation="Horizontal"> <TextBox Width="50" Text="{Binding Text1, UpdateSourceTrigger=PropertyChanged}" /> <TextBlock Margin="10,0" Text="->" /> <TextBlock Text="{Binding Text1, ConverterParameter=demo, Converter={StaticResource EqualsToBooleanConverter}}" /> </StackPanel> </controls:TitledItem>
EqualsToVisibilityConverter:
- Usage
<converters:EqualsToVisibilityConverter x:Key="EqualsToVisibilityConverter" /> <controls:TitledItem Title="EqualsToVisibilityConverter"> <StackPanel Orientation="Horizontal"> <TextBox Width="50" Text="{Binding Text2, UpdateSourceTrigger=PropertyChanged}" /> <TextBlock Margin="10,0" Text="->" /> <TextBlock Text="{Binding Text2, ConverterParameter=demo, Converter={StaticResource EqualsToVisibilityConverter}}" /> </StackPanel> </controls:TitledItem>
IntegerToBooleanConverter:
- Usage
<converters:IntegerToBooleanConverter x:Key="IntegerToBooleanConverter" /> <controls:TitledItem Title="IntegerToBooleanConverter"> <StackPanel Orientation="Horizontal"> <TextBox Width="30" Text="{Binding Integer3, UpdateSourceTrigger=PropertyChanged}" /> <TextBlock Margin="10,0" Text="->" /> <TextBlock Text="{Binding Integer3, Converter={StaticResource IntegerToBooleanConverter}}" /> </StackPanel> </controls:TitledItem>
InverseBooleanConverter:
- Usage
<converters:InverseBooleanConverter x:Key="InverseBooleanConverter" /> <controls:TitledItem Title="InverseBooleanConverter"> <StackPanel Orientation="Horizontal"> <CheckBox x:Name="checked3" Content="Checked" /> <TextBlock Margin="10,0" Text="->" /> <TextBlock Text="{Binding IsChecked, ElementName=checked3, Converter={StaticResource InverseBooleanConverter}}" /> </StackPanel> </controls:TitledItem>
IsLastItemInListConverter:
- Usage
<converters:IsLastItemInListConverter x:Key="IsLastItemInListConverter" /> <controls:TitledItem Title="IsLastItemInListConverter"> <DataGrid HorizontalAlignment="Left" AutoGenerateColumns="False" CanUserAddRows="False" HeadersVisibility="Column" ItemsSource="{Binding Integers}"> <DataGrid.ItemContainerStyle> <Style TargetType="{x:Type DataGridRow}"> <Setter Property="Background" Value="White" /> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type DataGridRow}"> <Border Background="{TemplateBinding Background}"> <DataGridCellsPresenter /> </Border> <ControlTemplate.Triggers> <DataTrigger Binding="{Binding RelativeSource={RelativeSource Self}, Converter={StaticResource IsLastItemInListConverter}}" Value="True"> <Setter Property="Background" Value="Yellow" /> </DataTrigger> </ControlTemplate.Triggers> </ControlTemplate> </Setter.Value> </Setter> </Style> </DataGrid.ItemContainerStyle> <DataGrid.Columns> <DataGridTextColumn Width="100" Binding="{Binding Value}" Header="Value" SortMemberPath="Value" /> </DataGrid.Columns> </DataGrid> </controls:TitledItem>
MultiBooleanToBooleanConverter:
- Usage
<converters:MultiBooleanToBooleanConverter x:Key="MultiBooleanToBooleanConverter" MixedIs="{x:Null}" /> <controls:TitledItem Title="MultiBooleanToBooleanConverter"> <StackPanel Orientation="Horizontal"> <StackPanel> <CheckBox x:Name="checked12" Content="Checked" /> <CheckBox x:Name="checked13" Content="Checked" /> <CheckBox x:Name="checked14" Content="Checked" /> </StackPanel> <TextBlock Margin="10,0" VerticalAlignment="Center" Text="->" /> <CheckBox VerticalAlignment="Center" Content="Are Equal" IsEnabled="False"> <CheckBox.IsChecked> <MultiBinding Converter="{StaticResource MultiBooleanToBooleanConverter}"> <Binding ElementName="checked12" Path="IsChecked" /> <Binding ElementName="checked13" Path="IsChecked" /> <Binding ElementName="checked14" Path="IsChecked" /> </MultiBinding> </CheckBox.IsChecked> </CheckBox> </StackPanel> </controls:TitledItem>
MultiBooleanToVisibilityConverter:
- Usage
<converters:MultiBooleanToVisibilityConverter x:Key="MultiBooleanToVisibilityConverter" MixedIs="Hidden" /> <controls:TitledItem Title="MultiBooleanToVisibilityConverter"> <StackPanel Orientation="Horizontal"> <StackPanel> <CheckBox x:Name="checked15" Content="Checked" /> <CheckBox x:Name="checked16" Content="Checked" /> <CheckBox x:Name="checked17" Content="Checked" /> </StackPanel> <TextBlock Margin="10,0" VerticalAlignment="Center" Text="->" /> <TextBlock VerticalAlignment="Center" Text="IsVisible"> <TextBlock.Visibility> <MultiBinding Converter="{StaticResource MultiBooleanToVisibilityConverter}"> <Binding ElementName="checked15" Path="IsChecked" /> <Binding ElementName="checked16" Path="IsChecked" /> <Binding ElementName="checked17" Path="IsChecked" /> </MultiBinding> </TextBlock.Visibility> </TextBlock> </StackPanel> </controls:TitledItem>
MultiEqualsToBooleanConverter:
- Usage
<converters:MultiEqualsToBooleanConverter x:Key="MultiEqualsToBooleanConverter" /> <controls:TitledItem Title="MultiEqualsToBooleanConverter"> <StackPanel Orientation="Horizontal"> <StackPanel> <CheckBox x:Name="checked4" Content="Checked" /> <CheckBox x:Name="checked5" Content="Checked" /> <CheckBox x:Name="checked6" Content="Checked" /> </StackPanel> <TextBlock Margin="10,0" VerticalAlignment="Center" Text="->" /> <CheckBox VerticalAlignment="Center" Content="Are Equal" IsEnabled="False"> <CheckBox.IsChecked> <MultiBinding Converter="{StaticResource MultiEqualsToBooleanConverter}"> <Binding ElementName="checked4" Path="IsChecked" /> <Binding ElementName="checked5" Path="IsChecked" /> <Binding ElementName="checked6" Path="IsChecked" /> </MultiBinding> </CheckBox.IsChecked> </CheckBox> </StackPanel> </controls:TitledItem>
MultiEqualsToVisibilityConverter:
- Usage
<converters:MultiEqualsToVisibilityConverter x:Key="MultiEqualsToVisibilityConverter" /> <controls:TitledItem Title="MultiEqualsToVisibilityConverter"> <StackPanel Orientation="Horizontal"> <StackPanel> <CheckBox x:Name="checked7" Content="Checked" /> <CheckBox x:Name="checked8" Content="Checked" /> <CheckBox x:Name="checked9" Content="Checked" /> </StackPanel> <TextBlock Margin="10,0" VerticalAlignment="Center" Text="->" /> <TextBlock VerticalAlignment="Center" Text="IsVisible"> <TextBlock.Visibility> <MultiBinding Converter="{StaticResource MultiEqualsToVisibilityConverter}"> <Binding ElementName="checked7" Path="IsChecked" /> <Binding ElementName="checked8" Path="IsChecked" /> <Binding ElementName="checked9" Path="IsChecked" /> </MultiBinding> </TextBlock.Visibility> </TextBlock> </StackPanel> </controls:TitledItem>
MultiValueToPathConverter:
- Usage
<converters:MultiValueToPathConverter x:Key="MultiValueToPathConverter" /> <controls:TitledItem Title="MultiValueToPathConverter"> <StackPanel Orientation="Horizontal"> <StackPanel> <TextBox Width="100" Text="{Binding Text3, UpdateSourceTrigger=PropertyChanged}" /> <TextBox Width="100" Text="{Binding Text4, UpdateSourceTrigger=PropertyChanged}" /> <TextBox Width="100" Text="{Binding Text5, UpdateSourceTrigger=PropertyChanged}" /> </StackPanel> <TextBlock Margin="10,0" VerticalAlignment="Center" Text="->" /> <TextBlock VerticalAlignment="Center"> <TextBlock.Text> <MultiBinding Converter="{StaticResource MultiValueToPathConverter}"> <Binding Path="Text3" /> <Binding Path="Text4" /> <Binding Path="Text5" /> </MultiBinding> </TextBlock.Text> </TextBlock> </StackPanel> </controls:TitledItem>
MultiValueToThicknessConverter:
- Usage
<converters:MultiValueToThicknessConverter x:Key="MultiValueToThicknessConverter" /> <controls:TitledItem Title="MultiValueToThicknessConverter"> <StackPanel Orientation="Horizontal"> <StackPanel> <TextBox Width="30" Text="{Binding Double2, UpdateSourceTrigger=PropertyChanged}" /> <TextBox Width="30" Text="{Binding Double3, UpdateSourceTrigger=PropertyChanged}" /> <TextBox Width="30" Text="{Binding Double4, UpdateSourceTrigger=PropertyChanged}" /> <TextBox Width="30" Text="{Binding Double5, UpdateSourceTrigger=PropertyChanged}" /> </StackPanel> <TextBlock Margin="10,0" VerticalAlignment="Center" Text="->" /> <Border VerticalAlignment="Center" BorderBrush="Gray" BorderThickness="1"> <TextBlock Text="Margin"> <TextBlock.Margin> <MultiBinding Converter="{StaticResource MultiValueToThicknessConverter}"> <Binding Path="Double2" /> <Binding Path="Double3" /> <Binding Path="Double4" /> <Binding Path="Double5" /> </MultiBinding> </TextBlock.Margin> </TextBlock> </Border> </StackPanel> </controls:TitledItem>
NullToBooleanConverter:
- Usage
<converters:NullToBooleanConverter x:Key="NullToBooleanConverter" Direction="NullIsTrue" /> <controls:TitledItem Title="NullToBooleanConverter"> <StackPanel Orientation="Horizontal"> <CheckBox x:Name="checked10" Content="Checked" IsThreeState="True" /> <TextBlock Margin="10,0" Text="->" /> <TextBlock Text="{Binding IsChecked, ElementName=checked10, Converter={StaticResource NullToBooleanConverter}}" /> </StackPanel> </controls:TitledItem>
NullToVisibilityConverter:
- Usage
<converters:NullToVisibilityConverter x:Key="NullToVisibilityConverter" Direction="NullIsVisible" /> <controls:TitledItem Title="NullToVisibilityConverter"> <StackPanel Orientation="Horizontal"> <CheckBox x:Name="checked11" Content="Checked" IsThreeState="True" /> <TextBlock Margin="10,0" Text="->" /> <TextBlock Text="{Binding IsChecked, ElementName=checked11, Converter={StaticResource NullToVisibilityConverter}}" /> </StackPanel> </controls:TitledItem>
PathToStringConverter:
- Usage
<converters:PathToStringConverter x:Key="PathToStringConverter" Section="Directory" /> <controls:TitledItem Title="PathToStringConverter"> <StackPanel Orientation="Horizontal"> <TextBox Width="200" Text="{Binding Text6, UpdateSourceTrigger=PropertyChanged}" /> <TextBlock Margin="10,0" Text="->" /> <TextBlock Text="{Binding Text6, ConverterParameter=demo, Converter={StaticResource PathToStringConverter}}" /> </StackPanel> </controls:TitledItem>
TimeOnlyToStringConverter:
- Usage
<converters:TimeOnlyToStringConverter x:Key="TimeOnlyToStringConverter" Format="ToLongTimeString" /> <controls:TitledItem Title="TimeOnlyToStringConverter"> <StackPanel Orientation="Horizontal"> <TextBlock Text="ToLongTimeString" /> <TextBlock Margin="10,0" Text="->" /> <TextBlock Text="{Binding TimeOnly1, Converter={StaticResource TimeOnlyToStringConverter}}" /> </StackPanel> </controls:TitledItem>
Links
License
Copyright (c) David Wendland. All rights reserved. Licensed under the MIT License. See LICENSE file in the project root for full license information.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net6.0-windows7.0 is compatible. net7.0-windows was computed. net7.0-windows7.0 is compatible. net8.0-windows was computed. net8.0-windows7.0 is compatible. |
-
net6.0-windows7.0
- No dependencies.
-
net7.0-windows7.0
- No dependencies.
-
net8.0-windows7.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.