SilverLight的新功能並在此發佈。請憐憫和具體:)SilverLight 4.0 C# - 具有CheckBox列的DomainDataSource DataGrid(僅限用戶界面 - 不是數據字段)允許用戶選擇多個記錄/行
使用RIA服務與DomainDataSource和DataGrid控件來顯示從SQL Server查詢數據行
目標:有複選框列(UI唯一的 - 不是數據字段)來允許用戶選擇多個記錄/行
背景:
1)創建新的Silverlight 4,用C#溶液RIA服務
2)ProjectName.Web
- 創建實體框架(EF)模型引用SQL Server表/視圖(內置解決方案)。
- 使用EF模型創建域服務(內置解決方案)。
3)在SilverLightProjectName
- 從數據源窗口,拖動表到設計表面,以產生DomainDataSource和DataGrid(此工作很大到DataGrid綁定到數據源)
4 )在MainPage.XAML中添加複選框列
發生了什麼:複選框由用戶選擇/檢查,向下滾動,向上滾動,所有複選框重置,並且僅檢查Datagrid.SelectedItem。由於分頁,我已經閱讀過這個行爲是'按設計'的。
<sdk:DataGrid RowStyle="{StaticResource newDataGridStyle}" AutoGenerateColumns="False" ItemsSource="{Binding ElementName=ddsPagerApp, Path=Data}" Name="vwPagerAppDataGrid" RowDetailsVisibilityMode="VisibleWhenSelected" MouseLeftButtonDown="vwPagerAppDataGrid_MouseLeftButtonDown" VerticalGridLinesBrush="#FFB9B9B9" FontSize="10" Grid.Row="3" SelectionChanged="vwPagerAppDataGrid_SelectionChanged" KeyDown="vwPagerAppDataGrid_KeyDown" MouseLeftButtonUp="vwPagerAppDataGrid_MouseLeftButtonUp" MouseRightButtonUp="vwPagerAppDataGrid_MouseRightButtonUp" DataContext="{Binding}" SelectionMode="Single" IsEnabled="True" IsReadOnly="False" TabIndex="2" Grid.Column="1" Margin="0,10,9,9">
<sdk:DataGrid.Columns>
<sdk:DataGridTemplateColumn IsReadOnly="False">
<sdk:DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<CheckBox Name="ChkSelected" IsThreeState="False" IsChecked="{Binding Path=IsChecked, Mode=TwoWay}" HorizontalAlignment="Center" VerticalAlignment="Center" Unchecked="IndividualCheckBox_Unchecked" Checked="IndividualCheckBox_Checked" Width="Auto" Height="Auto" />
</DataTemplate>
</sdk:DataGridTemplateColumn.CellEditingTemplate>
</sdk:DataGridTemplateColumn>
<sdk:DataGridTextColumn x:Name="fullNameColumn" Binding="{Binding Path=FullName}" Header="Full Name" IsReadOnly="True" />
<sdk:DataGridTextColumn x:Name="departmentColumn" Binding="{Binding Path=department}" Header="Department" IsReadOnly="True" />
<sdk:DataGridTextColumn x:Name="pager_number_displayColumn" Binding="{Binding Path=pager_number_display}" Header="Pager Number" IsReadOnly="True" />
<sdk:DataGridTextColumn x:Name="PageTo" Binding="{Binding Path=PageTo}" Header="Page To" IsReadOnly="True" />
</sdk:DataGrid.Columns>
</sdk:DataGrid>
<riaControls:DomainDataSource AutoLoad="True" d:DesignData="{d:DesignInstance my:vwPagerApp, CreateList=true}" Height="0" LoadedData="ddsPagerApp_LoadedData" Name="ddsPagerApp" QueryName="GetVwPagerAppsQuery" Width="0" Margin="10,0,25,45" Background="#FF7D0000" Foreground="#FF7D0000" Visibility="Visible">
<riaControls:DomainDataSource.DomainContext>
<my:NotifyDomainContext />
</riaControls:DomainDataSource.DomainContext>
</riaControls:DomainDataSource>
嘗試1:
-
在EFModel.edmx
- ,添加布爾標量屬性 '器isChecked' 在DomainService.metadata.cs
- ,增加公共BOOL {器isChecked獲得;組; } MainPage.XAML中的
- 。加入(上文)器isChecked = 「{綁定路徑=器isChecked,模式=雙向}」
獲取錯誤:錯誤11009:屬性 '' 沒有被映射
UPDATE:反轉嘗試1:
嘗試2:
研究限定的局部類的實體,佈線DataGrid和使用該跟蹤複選框值的可能性。 任何意見,如果這將工作/如何?
盡我最大的努力來吸收這一點。請賜教我...並提前謝謝你:)