1

チェックボックス付きの DataGridTemplateColumn を Silverlight の Datagrid に追加します。チェックボックスが列としてデータグリッドに正常に追加されました。ただし、複数のチェックボックスをオンにすると、この列の他のいくつかのチェックボックスが自動的に影響を受けます (つまり、オンからオフに、またはその逆に変更されます)。このチェックボックスにイベント ハンドラを追加していないのに、どうしてこうなったのでしょうか? データグリッドをスクロールしてより多くのレコードを表示すると、データグリッドが自動的に更新/更新され、その時点でチェックボックスがめちゃくちゃになるようです。私のコードは以下のとおりです。

            DataGridTemplateColumn templateColumn = new DataGridTemplateColumn() { Header = "header",Width=new DataGridLength(50) };               
            StringBuilder CellTemp = new StringBuilder();
            CellTemp.Append("<DataTemplate ");
            CellTemp.Append("xmlns='http://schemas.microsoft.com/winfx/");
            CellTemp.Append("2006/xaml/presentation' ");
            CellTemp.Append("xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml' >");
            CellTemp.Append("<CheckBox  x:Name='" + "checkBoxHeader" + "' Margin='4'  IsChecked='False'/>");
            CellTemp.Append("</DataTemplate>");
            templateColumn.CellTemplate = (DataTemplate)XamlReader.Load(CellTemp.ToString());
            ftrDataGrid.Columns.Add(templateColumn);

このデータグリッドにイベント ハンドラを追加する必要がありますが、どうすればこの問題を解決できますか?

ご意見をお寄せいただきありがとうございます。

4

1 に答える 1

0

テンプレートでのバインディングの設定は、次のように簡単です。

DataGridTemplateColumn templateColumn = new DataGridTemplateColumn() { Header 
...

CellTemp.Append("<CheckBox  x:Name='" + "checkBoxHeader" + "' Margin='4'  IsChecked="{Binding MyProperty, Mode=TwoWay}"/>");
...            
ftrDataGrid.Columns.Add(templateColumn);

MyPropertyはブール値です。

于 2012-08-02T18:10:34.563 に答える