PowerTools MultiRow for Windows Forms 8.0J
IFilteringCell インターフェース
メンバ  使用例 

指定した値に従ってすべての行のセルをフィルタリングできるCellに共通の機能を定義します。
構文
Public Interface IFilteringCell 
public interface IFilteringCell 
使用例
次のサンプルコードは、このインタフェースを使用してフィルタリングセルをカスタマイズする方法を示します。このサンプルコードは、FilteringTextBoxCellクラスに示されている詳細なコード例の一部を抜粋したものです。
private Cell CreateComboBoxFilterCell()
{
    return new MyFileringComboBoxCell();
}

class MyFileringComboBoxCell : ComboBoxCell, IFilteringCell
{
    public MyFileringComboBoxCell()
    {
        this.Items.Add("");
        this.Items.Add("Leader");
        this.Items.Add("Developer");
        this.Items.Add("Tester");
    }

    public bool Filtering(object editedFormattedValue, object targetCellValue, int targetRowIndex)
    {
        if (object.Equals(editedFormattedValue, string.Empty) || object.Equals(editedFormattedValue, null))
        {
            return false;
        }
        return !object.Equals(editedFormattedValue, targetCellValue);
    }

    public int FilteringCellIndex
    {
        get { return 1; }
    }
}

private Cell CreateCheckBoxFilterCell()
{
    return new MyFilteringCheckBoxCell();
}

class MyFilteringCheckBoxCell : CheckBoxCell, IFilteringCell
{
    public MyFilteringCheckBoxCell()
    {
        this.ThreeState = true;
    }

    public bool Filtering(object editedFormattedValue, object targetCellValue, int targetRowIndex)
    {
        if (object.Equals(editedFormattedValue, CheckState.Indeterminate))
        {
            return false;
        }
        if (object.Equals(targetCellValue, null) || object.Equals(targetCellValue, false))
        {
            return !object.Equals(editedFormattedValue, CheckState.Unchecked);
        }
        if (object.Equals(targetCellValue, true))
        {
            return !object.Equals(editedFormattedValue, CheckState.Checked);
        }
        return false;
    }

    public int FilteringCellIndex
    {
        get { return 2; }
    }
}
Private Function CreateComboBoxFilterCell() As Cell
    Return New MyFileringComboBoxCell()
End Function

Private Class MyFileringComboBoxCell
    Inherits ComboBoxCell
    Implements IFilteringCell
    Public Sub New()
        Me.Items.Add("")
        Me.Items.Add("Leader")
        Me.Items.Add("Developer")
        Me.Items.Add("Tester")
    End Sub

    Public Function Filtering(ByVal editedFormattedValue As Object, ByVal targetCellValue As Object, ByVal targetRowIndex As Integer) As Boolean Implements IFilteringCell.Filtering
        If Object.Equals(editedFormattedValue, String.Empty) OrElse Object.Equals(editedFormattedValue, Nothing) Then
            Return False
        End If
        Return Not Object.Equals(editedFormattedValue, targetCellValue)
    End Function

    Public ReadOnly Property FilteringCellIndex() As Integer Implements IFilteringCell.FilteringCellIndex
        Get
            Return 1
        End Get
    End Property
End Class

Private Function CreateCheckBoxFilterCell() As Cell
    Return New MyFilteringCheckBoxCell()
End Function

Private Class MyFilteringCheckBoxCell
    Inherits CheckBoxCell
    Implements IFilteringCell
    Public Sub New()
        Me.ThreeState = True
    End Sub

    Public Function Filtering(ByVal editedFormattedValue As Object, ByVal targetCellValue As Object, ByVal targetRowIndex As Integer) As Boolean Implements IFilteringCell.Filtering
        If Object.Equals(editedFormattedValue, CheckState.Indeterminate) Then
            Return False
        End If
        If Object.Equals(targetCellValue, Nothing) OrElse Object.Equals(targetCellValue, False) Then
            Return Not Object.Equals(editedFormattedValue, CheckState.Unchecked)
        End If
        If Object.Equals(targetCellValue, True) Then
            Return Not Object.Equals(editedFormattedValue, CheckState.Checked)
        End If
        Return False
    End Function

    Public ReadOnly Property FilteringCellIndex() As Integer Implements IFilteringCell.FilteringCellIndex
        Get
            Return 2
        End Get
    End Property
End Class
参照

IFilteringCell メンバ
GrapeCity.Win.MultiRow 名前空間

 

 


© 2008-2015 GrapeCity inc. All rights reserved.