5

行のブール値の Sync プロパティに応じて、Ultragrid の特定の行を無効にしたいと考えています。私は2つの異なる解決策を考えましたが、どちらもうまくいきませんでした.

1) Sync プロパティを行の Activation プロパティにデータバインドします。これは可能ですか?

2) グリッドの InitializeRow イベントなどのイベントで、Sync プロパティが何であるかを調べ、true に設定されている場合は行を無効にします。このメソッドは、グリッドにさらに行が追加されてからグリッドが保存される場合とは別に機能します。無効な行に正しいデータが含まれないように、データが並べ替えられます。したがって、後で正しい行を調べて無効にできるように、これがいつ発生するかを知る方法が必要です。

private void ultraGrid1_InitializeRow(object sender, Infragistics.Win.UltraWinGrid.InitializeRowEventArgs e)
{
    e.Row.Activation = Infragistics.Win.UltraWinGrid.Activation.AllowEdit;
    if (e.Row.Cells[grdBoundGrip.DisplayLayout.Bands[0].Columns["Sync"]].Value != null && (bool)e.Row.Cells[grdBoundGrip.DisplayLayout.Bands[0].Columns["Sync"]].Value)
            e.Row.Activation = Infragistics.Win.UltraWinGrid.Activation.Disabled;
}
4

1 に答える 1

5

独自の関数で記述することもできます。以下の解決策がお役に立てば幸いです。

Windows フォーム "test" を作成し、以下に示すように、そのウィンドウ フォームに "ultragird" をドラッグ アンド ドロップします。 ここに画像の説明を入力

フォームロード関数「test_Load」を作成し、以下のコードを試してください.同期「false」の行は無効になっています..

   private void test_Load(object sender, EventArgs e)
    {
        DataTable dt = new DataTable();
        dt.Columns.Add("Name", typeof(string));
        dt.Columns.Add("Address", typeof(string));
        dt.Columns.Add("Sync", typeof(string));
        dt.Rows.Add(new object[] {"John","United States","False" });
        dt.Rows.Add(new object[] { "Xing", "China", "True" });
        dt.Rows.Add(new object[] { "Ram", "Nepal", "True" });
        dt.Rows.Add(new object[] { "Germany", "Thomas", "False" });
        dt.Rows.Add(new object[] { "Pedrik", "Russia", "True" });

        ultraGrid1.DataSource = dt;
        ultraGrid1.DataBind();

        DisableRowsWithSyncOff(dt.Rows.Count);

    }
    private void DisableRowsWithSyncOff(int _rowcount)
    {
        for (int i = 0; i < _rowcount; i++)
        {                
            if (!Convert.ToBoolean(ultraGrid1.Rows[i].Cells["Sync"].Value.ToString()))
            {                    
                ultraGrid1.Rows[i].Activation = Infragistics.Win.UltraWinGrid.Activation.Disabled;
            }
        }
    }
于 2014-03-31T04:55:00.687 に答える