作成日: 2020/01/30 最終更新日: 2020/01/30
文書種別
使用方法
詳細
CellFactoryクラスを使用したカスタムセルは、AllowMergingプロパティを設定しても、自動マージの対象にならず、マージが行われません。
この場合は、下記のサンプルコードのように、IMergeManagerインタフェースを実装したクラスを用意してマージを行う必要があります。
◎サンプルコード(C#)
この場合は、下記のサンプルコードのように、IMergeManagerインタフェースを実装したクラスを用意してマージを行う必要があります。
◎サンプルコード(C#)
using C1.WPF.FlexGrid;
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
flexGrid.CellFactory = new CellFactory();
flexGrid.AllowMerging = AllowMerging.All;
flexGrid.RowHeaders.Columns[0].AllowMerging = true;
flexGrid.MergeManager = new MyMergeManager();
}
}
class MyMergeManager : IMergeManager
{
public CellRange GetMergedRange(C1FlexGrid grid, CellType cellType, CellRange rg)
{
if (cellType == CellType.RowHeader)
{
if (rg.Column == 0 && rg.Row >= 0 && rg.Row <= 2)
{
rg.Column = 0;
rg.Column2 = 0;
rg.Row = 0;
rg.Row2 = 2;
}
}
return rg;
}
string GetDataDisplay(C1FlexGrid grid, int r, int c)
{
return grid[r, c].ToString();
}
}
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
flexGrid.CellFactory = new CellFactory();
flexGrid.AllowMerging = AllowMerging.All;
flexGrid.RowHeaders.Columns[0].AllowMerging = true;
flexGrid.MergeManager = new MyMergeManager();
}
}
class MyMergeManager : IMergeManager
{
public CellRange GetMergedRange(C1FlexGrid grid, CellType cellType, CellRange rg)
{
if (cellType == CellType.RowHeader)
{
if (rg.Column == 0 && rg.Row >= 0 && rg.Row <= 2)
{
rg.Column = 0;
rg.Column2 = 0;
rg.Row = 0;
rg.Row2 = 2;
}
}
return rg;
}
string GetDataDisplay(C1FlexGrid grid, int r, int c)
{
return grid[r, c].ToString();
}
}
旧文書番号
84900