/Foggy.Desktop/Converters/IgnoreNewItemPlaceholderConverter.cs
http://foggy.codeplex.com · C# · 60 lines · 25 code · 5 blank · 30 comment · 4 complexity · fed2736291907ead72b969296aa9a5ee MD5 · raw file
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
-
- namespace Foggy.Converters
- {
- using System.Windows;
- using System.Windows.Data;
-
- /// <summary>
- /// Workaround for a bug in the WPF DataGrid (WPF Toolkit version).
- /// </summary>
- /// <remarks>The WPF DataGrid (WPF Toolkit version) throws a FormatException if a view model
- /// includes a SelectedItem property. This value converter works aroun that bug. The value
- /// converter is taken from Nigel Spencer's Blog, which identifies the bug and provides this
- /// solution. See: http://blog.spencen.com/2009/04/30/problems-binding-to-selectedvalue-with-microsoftrsquos-wpf-datagrid.aspx?results=1(</remarks>
- public class IgnoreNewItemPlaceHolderConverter : IValueConverter
- {
- /// <summary>
- /// New item placeholder name
- /// </summary>
- private const string NewItemPlaceholderName = "{NewItemPlaceholder}";
-
- /// <summary>
- /// Converts a value.
- /// </summary>
- /// <param name="value">The value produced by the binding source.</param>
- /// <param name="targetType">The type of the binding target property.</param>
- /// <param name="parameter">The converter parameter to use.</param>
- /// <param name="culture">The culture to use in the converter.</param>
- /// <returns>
- /// A converted value. If the method returns null, the valid null value is used.
- /// </returns>
- public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
- {
- return value;
- }
-
- /// <summary>
- /// Converts a value.
- /// </summary>
- /// <param name="value">The value that is produced by the binding target.</param>
- /// <param name="targetType">The type to convert to.</param>
- /// <param name="parameter">The converter parameter to use.</param>
- /// <param name="culture">The culture to use in the converter.</param>
- /// <returns>
- /// A converted value. If the method returns null, the valid null value is used.
- /// </returns>
- public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
- {
- if (value != null && value.ToString() == NewItemPlaceholderName)
- {
- value = DependencyProperty.UnsetValue;
- }
-
- return value;
- }
- }
- }