GrapeCity SPREAD for WPF 2.0J
PropertyDataField クラス
メンバ 

データソースの値を取得または設定するために指定されたプロパティ名を使用する Column を定義します。
構文
'Declaration
 
Public Class PropertyDataField 
   Inherits DataField
public class PropertyDataField : DataField 
次のサンプルは 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
継承階層

System.Object
   GrapeCity.Windows.SpreadGrid.DataField
      GrapeCity.Windows.SpreadGrid.PropertyDataField

参照

PropertyDataField メンバ
GrapeCity.Windows.SpreadGrid 名前空間

 

 


Copyright © 2012 GrapeCity inc. All rights reserved.