SPREAD for WPF 3.0J - GcSpreadGrid
Converter プロパティ (PropertyDataField)
使用例 

GrapeCity.Windows.SpreadGrid 名前空間 > PropertyDataField クラス : Converter プロパティ
データソースの値を取得または設定するときに使用するコンバータを取得または設定します。
シンタックス
'宣言
 
Public Property Converter As IValueConverter
public IValueConverter Converter {get; set;}

プロパティ値

System.Windows.Data.IValueConverter 型の値。既定値は null 参照 (Visual Basicでは Nothing) です。
使用例
次のサンプルは GcSpreadGrid をデータソースに連結します。各列を連結するには、PropertyDataFieldBindingDataField を使用します。
private void MainWindow_Loaded(object sender, RoutedEventArgs e)
{
List<Employee> list = new List<Employee>();
list.Add(new Employee() { Name = "Nancy", City = "Tokyo", Phone = "000-88888888", Age = 30, IsMale = false });
list.Add(new Employee() { Name = "Janet", City = "Sendai", Phone = "000-88888888", Age = 20, IsMale = true });
list.Add(new Employee() { Name = "Rose", City = "Tokyo", Phone = "000-88888888", Age = 40, IsMale = false });
list.Add(new Employee() { Name = "Buchanan", City = "Osaka", Phone = "000-88888888", Age = 20, IsMale = true });
list.Add(new Employee() { Name = "Leverling", City = "Tokyo", Phone = "000-88888888", Age = 30, IsMale = false });
list.Add(new Employee() { Name = "Gavin", City = "Nagoya", Phone = "000-88888888", Age = 40, IsMale = true });
list.Add(new Employee() { Name = "Apple", City = "Osaka", Phone = "000-88888888", Age = 20, IsMale = false });
list.Add(new Employee() { Name = "Tim", City = "Nara", Phone = "000-88888888", Age = 30, IsMale = true });

gcSpreadGrid1.AutoGenerateColumns = false;
gcSpreadGrid1.ItemsSource = list;
gcSpreadGrid1.ColumnCount = 3;

PropertyDataField dataField1 = new PropertyDataField();
dataField1.Property = "Name";
gcSpreadGrid1.Columns[0].DataField = dataField1;

BindingDataField dataField2 = new BindingDataField();
Binding binding = new Binding();
binding.Path = new PropertyPath("City");
dataField2.Binding = binding;
gcSpreadGrid1.Columns[1].DataField = dataField2;

PropertyDataField dataField3 = new PropertyDataField();
dataField3.Property = "IsMale";
dataField3.Converter = new IsMaleConverter();
gcSpreadGrid1.Columns[2].DataField = dataField3;
}

class IsMaleConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (!(value is bool))
{
throw new InvalidOperationException("Value is invalid.");
}
return ((bool)value) ? "Male" : "Female";
}

public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
string str = value as string;
if (str == null)
{
throw new InvalidOperationException("Value is invalid");
}

if (string.Equals(str, "Male", StringComparison.CurrentCultureIgnoreCase))
{
return true;
}
else if (string.Equals(str, "Female", StringComparison.CurrentCultureIgnoreCase))
{
return false;
}
throw new ArgumentException("Value is not valid");
}
}
Private Sub MainWindow_Loaded(sender As Object, e As RoutedEventArgs)
Dim list As New List(Of Employee)()
list.Add(New Employee() With { _
.Name = "Nancy", _
.City = "Tokyo", _
.Phone = "000-88888888", _
.Age = 30, _
.IsMale = False _
})
list.Add(New Employee() With { _
.Name = "Janet", _
.City = "Sendai", _
.Phone = "000-88888888", _
.Age = 20, _
.IsMale = True _
})
list.Add(New Employee() With { _
.Name = "Rose", _
.City = "Tokyo", _
.Phone = "000-88888888", _
.Age = 40, _
.IsMale = False _
})
list.Add(New Employee() With { _
.Name = "Buchanan", _
.City = "Osaka", _
.Phone = "000-88888888", _
.Age = 20, _
.IsMale = True _
})
list.Add(New Employee() With { _
.Name = "Leverling", _
.City = "Tokyo", _
.Phone = "000-88888888", _
.Age = 30, _
.IsMale = False _
})
list.Add(New Employee() With { _
.Name = "Gavin", _
.City = "Nagoya", _
.Phone = "000-88888888", _
.Age = 40, _
.IsMale = True _
})
list.Add(New Employee() With { _
.Name = "Apple", _
.City = "Osaka", _
.Phone = "010-88888888", _
.Age = 20, _
.IsMale = False _
})
list.Add(New Employee() With { _
.Name = "Tim", _
.City = "Nara", _
.Phone = "010-88888888", _
.Age = 30, _
.IsMale = True _
})

gcSpreadGrid1.AutoGenerateColumns = False
gcSpreadGrid1.ItemsSource = list
gcSpreadGrid1.ColumnCount = 3

Dim dataField1 As New PropertyDataField()
dataField1.[Property] = "Name"
gcSpreadGrid1.Columns(0).DataField = dataField1

Dim dataField2 As New BindingDataField()
Dim binding As New Binding()
binding.Path = New PropertyPath("City")
dataField2.Binding = binding
gcSpreadGrid1.Columns(1).DataField = dataField2

Dim dataField3 As New PropertyDataField()
dataField3.[Property] = "IsMale"
dataField3.Converter = New IsMaleConverter()
gcSpreadGrid1.Columns(2).DataField = dataField3
End Sub

Private Class IsMaleConverter
Implements IValueConverter
Public Function Convert(value As Object, targetType As Type, parameter As Object, culture As CultureInfo) As Object Implements IValueConverter.Convert
If Not (TypeOf value Is Boolean) Then
Throw New InvalidOperationException("Value is invalid.")
End If
Return If(CBool(value), "Male", "Female")
End Function

Public Function ConvertBack(value As Object, targetType As Type, parameter As Object, culture As CultureInfo) As Object Implements IValueConverter.ConvertBack
Dim str As String = TryCast(value, String)
If str Is Nothing Then
Throw New InvalidOperationException("Value is invalid")
End If

If String.Equals(str, "Male", StringComparison.CurrentCultureIgnoreCase) Then
Return True
ElseIf String.Equals(str, "Female", StringComparison.CurrentCultureIgnoreCase) Then
Return False
End If
Throw New ArgumentException("Value is not valid")
End Function
End Class
参照

PropertyDataField クラス
PropertyDataField メンバ