An implementation of IValueConverter that converts from one set of values to another based on the contents of the Mappings collection.

Namespace: DevZest.Windows
Assembly: DevZest.WpfDocking (in DevZest.WpfDocking.dll)

Syntax

C#
[ValueConversionAttribute(typeof(Object), typeof(Object))]
[ContentPropertyAttribute("Mappings")]
public class MapConverter : DependencyObject, 
	IValueConverter
Visual Basic
<ValueConversionAttribute(GetType(Object), GetType(Object))> _
<ContentPropertyAttribute("Mappings")> _
Public Class MapConverter _
	Inherits DependencyObject _
	Implements IValueConverter

Remarks

The MapConverter converts from one set of values to another. The source and destination values are stored in instances of Mapping inside the Mappings collection.

If this converter is asked to convert a value for which it has no knowledge, it will use the FallbackBehavior to determine how to deal with the situation.

Examples

The following example shows a MapConverter being used to control the visibility of a Label based on a CheckBox:
CopyXAML
<CheckBox x:Name="_checkBox"/>
<Label Content="Here is the label.">
    <Label.Visibility>
        <Binding Path="IsChecked" ElementName="_checkBox" FallbackValue="Collapsed">
            <Binding.Converter>
                <MapConverter>
                    <Mapping To="{x:Static Visibility.Visible}">
                        <Mapping.From>
                            <sys:Boolean>True</sys:Boolean>
                        </Mapping.From>
                    </Mapping>
                </MapConverter>
            </Binding.Converter>
        </Binding>
    </Label.Visibility>
</Label>

Examples

The following example shows how a MapConverter can be used to convert between values of the UriFormat enumeration and human-readable strings. Notice how not all possible values are present in the mappings. The fallback behavior is set to ReturnOriginalValue to ensure that any conversion failures result in the original value being returned:
CopyXML
<Label>
    <Label.Content>
        <Binding Path="UriFormat">
            <Binding.Converter>
                <MapConverter FallbackBehavior="ReturnOriginalValue">
                    <Mapping From="{x:Static sys:UriFormat.SafeUnescaped}" To="Safe unescaped"/>
                    <Mapping From="{x:Static sys:UriFormat.UriEscaped}" To="URI escaped"/>
                </MapConverter>
            </Binding.Converter>
        </Binding>
    </Label.Content>
</Label>

Inheritance Hierarchy

See Also