I have an
ObservableCollection<object>
Let's consider we have 2 items in it :
int a = 1;
string str = "hey!";
My xaml file acces to it via DataContext and I'd like to display the Type (System.Type) of the object with a Binding. Here is the code I have
<TextBlock Text="{Binding}"/>
And I'd like to display in my TextBlocks is :
int
string
Thanks for any help !
You'll need to use an IValueConverter
to do this.
[ValueConversion(typeof(object), typeof(string))]
public class ObjectToTypeConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return value == null ? null : value.GetType().Name // or FullName, or whatever
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new InvalidOperationException();
}
}
Then add it to your resources...
<Window.Resources>
<my:ObjectToTypeConverter x:Key="typeConverter" />
</Window.Resources>
Then use it on your binding
<TextBlock Text="{Binding Mode=OneWay, Converter={StaticResource typeConverter}}" />
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With