|
namespace ReportingServicesDemo
{
using System;
using System.Windows.Data;
/// <summary>
/// Two way IValueConverter that lets you bind a property on a bindable object
/// that can be an empty string value to a dependency property that should
/// be set to null in that case
/// </summary>
public class TargetNullValueConverter : IValueConverter
{
/// <summary>
/// Converts <c>null</c> or empty strings to <c>null</c>.
/// </summary>
/// <param name="value">The value to convert.</param>
/// <param name="targetType">The expected type of the result (ignored).</param>
/// <param name="parameter">Optional parameter (ignored).</param>
/// <param name="culture">The culture for the conversion (ignored).</param>
/// <returns>If the <paramref name="value"/>is <c>null</c> or empty, this method returns <c>null</c> otherwise it returns the <paramref name="value"/>.</returns>
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
string strValue = value as string;
return string.IsNullOrEmpty(strValue) ? null : value;
}
/// <summary>
/// Converts <c>null</c> back to <see cref="String.Empty"/>.
/// </summary>
/// <param name="value">The value to convert.</param>
/// <param name="targetType">The expected type of the result (ignored).</param>
/// <param name="parameter">Optional parameter (ignored).</param>
/// <param name="culture">The culture for the conversion (ignored).</param>
/// <returns>If <paramref name="value"/> is <c>null</c>, it returns <see cref="String.Empty"/> otherwise <paramref name="value"/>.</returns>
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return value ?? string.Empty;
}
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
Ernesto Herrera is a Senior Developer, Architect with more than 12 years experience, actually working with Silverlight Line-of-Bussiness Applications, he holds a MCTS Web Application 2.0 Certification, and have a wide experience with sql server since the 6.5 version, on his free time he likes to play tennis with his wife,kids and friends, also enjoy playing Wii with his sons, he works at Sigo S.A., a retail business located at Margarita Island, Venezuela.