グリッドの塗りつぶしの例を見てみましょう。
Columnクラスがあります。デリゲートFormatCellがあり、データを受け取って文字列に変換します。FormatCellデリゲートは設計時には不明です。プラグインによって設定されている可能性があります。
public class ColumnFormatter
{
public Func<Data, string> FormatCell {get; set;}
//...
}
このような列がどのように使用されるかの例を次に示します。
public class Table
{
public List<Column> Columns;
public List<List<string>> BuildTable(List<Data> dataRows)
{
var table = new List<List<string>>();
foreach (var data in dataRows)
{
var line = new List<string>();
foreach (var column in Columns)
{
line.Add(column.FormatCell(data));
}
table.Add(line);
}
return table;
}
}
これで、各列はその状態を保存するはずです。問題は、この FormatCell デリゲートをシリアル化する方法です。
PS私はこの質問を認識していますが、私の質問はより具体的なものです。そして、そのような場合に特定の信頼できる慣らしソリューションを持っているのでしょうか?