0

私はシルバーライトでアプリケーションを作成しています。そのアプリケーションでは、データグリッドを次のように使用しています

 <data:DataGrid Grid.Row="1" HorizontalAlignment="Left" IsReadOnly="True" Name="dataGrid1" VerticalAlignment="Top" AutoGenerateColumns="False" DataContext="{Binding}" SelectionMode="Single" LoadingRow="ResultsGrid_LoadingRow">
                        <data:DataGrid.Columns>
                            <data:DataGridTextColumn Header=" BedId " Binding="{Binding  BedID }" />
                            <data:DataGridTextColumn Header="PatientName" Binding="{Binding PatientName}" />
                            <data:DataGridTextColumn Header="AdmitDate" Binding="{Binding AdmitDate}" />
                            <data:DataGridTextColumn Header="BirthDate" Binding="{Binding BirthDate}" />
                            <data:DataGridCheckBoxColumn Header="checkbox" Binding="{ Binding }" IsReadOnly="False" />                          
                        </data:DataGrid.Columns>
                    </data:DataGrid>

アプリケーションでデータ グリッドをロードするたびに、それぞれの値とともにデータ グリッドが表示されます。アプリケーションでは、すべての列の前にチェック ボックスを表示したいのですが、上記のコードはすべての列の前にチェック ボックスを表示します。しかし、そのチェックボックスをクリックするたびに、チェックイベントが表示されません。条件に従って1つまたは複数のチェックボックスを選択したいのですが、その方法がわかりません。助けてください。よろしくお願いします。

4

1 に答える 1

0

いくつかのオプションがあります。1.データグリッドで選択変更イベントを設定し、行が選択されるたびに、そのアスペクトのバインドされたチェックボックスを変更します。

チェックボックスが選択されたときに発生するイベントなど、より詳細な制御が必要な場合は、DataGridColumを次のようなDataTemplateで置き換えます。

<DataGridTemplateColumn Header="Checkbox">
<DataGridTemplateColumn.CellTemplate>
      <DataTemplate>
           <CheckBox IsChecked="{Binding Path=someProperty, UpdateSourceTrigger=PropertyChanged}" Click="CheckBox_Click"/>
     </DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>

次に、コードビハインドで

private void CheckBox_Click(object sender, RoutedEventArgs e)
{
//I realize you don't have message box in silverlight but this demonstrates the firing of the event
MessageBox.Show("click");
}
于 2012-07-10T14:41:33.737 に答える