日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

Silverlight WCF RIA服务(二十三)Silverlight 客户端 4

發布時間:2023/11/27 生活经验 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Silverlight WCF RIA服务(二十三)Silverlight 客户端 4 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
DomainDataSource WCF RIA Services提供DomainDataSource控件來簡化用戶界面和域上下文中數據的交互。通過DomainDataSource,我們可以只是用聲明性語法來檢索、編輯數據。我們指定域上下文與DomainDataSource一起使用,然后通過這個上下文來調用操作。

DomainDataSource
WCF RIA Services提供DomainDataSource控件來簡化用戶界面和域上下文中數據的交互。通過DomainDataSource,我們可以只是用聲明性語法來檢索、編輯數據。我們指定域上下文與DomainDataSource一起使用,然后通過這個上下文來調用操作。
配置Silverlight應用程序的DomainDataSource
為了使用DomainDataSource控件,我們必須在包含DomainDataSource的SL控件中添加一個程序集的引用和命名空間。
在SL項目中,我們必須添加一個對System.Windows.Controls.Ria程序集的引用。如果選擇DataGrid與DomainDataSource一起使用,我們還要添加對System.Windows.Controls.Data的引用。
在宿主控件內,例如UserControl,我們必須添加下面的命名空間引用:
?

?
1 2 3 4 5 xmlns:riaControls="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Ria" xmlns:riaData="clr-namespace:System.Windows.Data;assembly=System.Windows.Controls.Ria" xmlns:domain="clr-namespace:SilverlightApplication17.Web"


如果選擇使用DataGrid控件,還需添加下面的命名空間:
?

?
1 2 3 xmlns:data="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data"


檢索和顯示數據
我們為DomainDataSource指定一個域上下文,并向用戶提供方法的名字來裝載數據。然后我們綁定表示控件,例如DataGrid對DomainDataSource。下面的例子演示了DomainDataSource檢索從名為ProductDomainContext的域上下文而來的數據。在域服務中應該存在一個名為GetProduct()的查詢方法。
?

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 <USERCONTROL?<br?x:Class="ExampleApplication.MainPage"?/>??? xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" ????xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" ????xmlns:d="http://schemas.microsoft.com/expression/blend/2008" ????xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" ????xmlns:riaControls="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Ria" ????xmlns:riaData="clr-namespace:System.Windows.Data;assembly=System.Windows.Controls.Ria" ????xmlns:domain="clr-namespace:SilverlightApplication17.Web" ????xmlns:datac="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data" ????mc:Ignorable="d"> ????<GRID?x:Name="LayoutRoot"?Background="White"> ????????<RIACONTROLS:DOMAINDATASOURCE?x:Name="source"?AutoLoad="true"QueryName="GetProducts"> ????????????<RIACONTROLS:DOMAINDATASOURCE.DOMAINCONTEXT> ????????????????<DOMAIN:PRODUCTDOMAINCONTEXT> ????????????????</DOMAIN:PRODUCTDOMAINCONTEXT> ????????????</RIACONTROLS:DOMAINDATASOURCE.DOMAINCONTEXT> ????????</RIACONTROLS:DOMAINDATASOURCE> ????????<DATAC:DATAGRID?ItemsSource="{Binding Data, ElementName=source}"> ????????</DATAC:DATAGRID> ????</GRID> </USERCONTROL>


對查詢添加參數
某些情況下,查詢方法需要參數值。通常,一個查詢方法需要一個參數值來過濾返回的數據。下面的示例演示如何添加參數值,這個值可通過聲明性文本來指定。
?

?
1 2 3 4 5 6 7 8 9 10 11 12 13 <GRID x:Name="LayoutRoot"?Background="White"> ????<RIACONTROLS:DOMAINDATASOURCE x:Name="source"?AutoLoad="true"QueryName="GetProductsByColor"> ????????<RIACONTROLS:DOMAINDATASOURCE.DOMAINCONTEXT> ????????????<DOMAIN:PRODUCTDOMAINCONTEXT /> ????????</RIACONTROLS:DOMAINDATASOURCE.DOMAINCONTEXT> ????????<RIACONTROLS:DOMAINDATASOURCE.QUERYPARAMETERS> ????????????<RIADATA:PARAMETER ParameterName="color"?Value="Black"?/> ????????</RIACONTROLS:DOMAINDATASOURCE.QUERYPARAMETERS> ????</RIACONTROLS:DOMAINDATASOURCE> ????<DATAC:DATAGRID ItemsSource="{Binding Data, ElementName=source}"?/> </GRID>


還可以使用來自用戶的值來為查詢添加參數。我們使用ControlParameter對象來把來自用戶輸入控件的值傳遞到查詢。下面的例子展示了如何指定來自下拉菜單中的值做為參數值。
?

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 <GRID x:Name="LayoutRoot"?Background="White"> ????<GRID.ROWDEFINITIONS> ????????<ROWDEFINITION Height="25"?/> ????????<ROWDEFINITION Height="Auto"?/> ????</GRID.ROWDEFINITIONS>??? ????<RIACONTROLS:DOMAINDATASOURCE x:Name="source"?AutoLoad="true"QueryName="GetProductsByColor"> ????????<RIACONTROLS:DOMAINDATASOURCE.DOMAINCONTEXT> ????????????<DOMAIN:PRODUCTDOMAINCONTEXT /> ????????</RIACONTROLS:DOMAINDATASOURCE.DOMAINCONTEXT> ????????<RIACONTROLS:DOMAINDATASOURCE.QUERYPARAMETERS> ????????????<RIACONTROLS:CONTROLPARAMETER ????????????????ParameterName="color" ????????????????ControlName="colorCombo" ????????????????PropertyName="SelectedItem.Content" ????????????????RefreshEventName="SelectionChanged"?/> ????????</RIACONTROLS:DOMAINDATASOURCE.QUERYPARAMETERS> ????</RIACONTROLS:DOMAINDATASOURCE> ????<COMBOBOX x:Name="colorCombo"?Grid.Row="0"?Width="60"> ????????<COMBOBOXITEM Content="Black"?/> ????????<COMBOBOXITEM Content="Blue"?/> ????</COMBOBOX> ????<DATAC:DATAGRID Grid.Row="1"?ItemsSource="{Binding Data, ElementName=source}"?/> </GRID>


排序
DomainDataSource提供SortDescriptors集合來簡化數據的排序。在SortDescriptors集合中,我們提供SortDescriptor實例來向用戶描述參數值。我們可以添加多個SortDescriptor實例。還可以指定數據排序的升降序。下面的示例演示DomainDataSource中的排序描述符,從查詢中檢索的數據按來自StandardPrice屬性中的值排序。
?

?
1 2 3 4 5 6 7 8 9 10 11 12 13 <GRID x:Name="LayoutRoot"?Background="White">? ????<RIACONTROLS:DOMAINDATASOURCE x:Name="source"?AutoLoad="true"?QueryName="GetProducts"> ????????<RIACONTROLS:DOMAINDATASOURCE.DOMAINCONTEXT> ????????????<DOMAIN:PRODUCTDOMAINCONTEXT /> ????????</RIACONTROLS:DOMAINDATASOURCE.DOMAINCONTEXT>?? ????????<RIACONTROLS:DOMAINDATASOURCE.SORTDESCRIPTORS> ????????????<RIADATA:SORTDESCRIPTOR Direction="Ascending"?PropertyPath="StandardCost"?/> ????????</RIACONTROLS:DOMAINDATASOURCE.SORTDESCRIPTORS> ????</RIACONTROLS:DOMAINDATASOURCE> ????<DATAC:DATAGRID ItemsSource="{Binding Data, ElementName=source}"?/> </GRID>


分組
DomainDataSource提供了GroupDescriptors集合來通過屬性值來簡化分組數據。在GroupDescriptors集合中,我們提供GroupDescriptor示例來定義用來分組的值。可以添加多個GroupDescriptors實例。
?

?
1 2 3 4 5 6 7 8 9 10 11 12 13 <GRID x:Name="LayoutRoot"?Background="White">? ????<RIACONTROLS:DOMAINDATASOURCE x:Name="source"?AutoLoad="true"?QueryName="GetProducts"> ????????<RIACONTROLS:DOMAINDATASOURCE.DOMAINCONTEXT> ????????????<DOMAIN:PRODUCTDOMAINCONTEXT /> ????????</RIACONTROLS:DOMAINDATASOURCE.DOMAINCONTEXT>?? ????????<RIACONTROLS:DOMAINDATASOURCE.GROUPDESCRIPTORS> ????????????<RIADATA:GROUPDESCRIPTOR PropertyPath="Size"?/> ????????</RIACONTROLS:DOMAINDATASOURCE.GROUPDESCRIPTORS> ????</RIACONTROLS:DOMAINDATASOURCE> ????<DATAC:DATAGRID ItemsSource="{Binding Data, ElementName=source}"?/> </GRID>


過濾
DomainDataSource控件提供FilterDescriptors集合來允許我們過濾查詢返回的數據。通過添加過濾,我們可以指定只裝載滿足條件的域上下文實體。在FIlterDescriptorCollection對象上設置LogicalOperator屬性,我們可以在不同的過濾之間定義邏輯關系。
過濾描述符通過FilterOperator枚舉器來支持操作。
當定義基于用戶輸入的過濾時,我們可以提供ControlParameter實例。下面的示例演示了兩個通過邏輯AND連接的過濾描述符。一個過濾依賴于用戶的輸入,另一個過濾通過聲明性語句來指定。
?

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 <GRID x:Name="LayoutRoot"?Background="White">? ????<GRID.ROWDEFINITIONS> ????????<ROWDEFINITION Height="25"?/> ????????<ROWDEFINITION Height="Auto"?/> ????</GRID.ROWDEFINITIONS> ????<RIACONTROLS:DOMAINDATASOURCE x:Name="source"?AutoLoad="true"?QueryName="GetProducts"> ????????<RIACONTROLS:DOMAINDATASOURCE.DOMAINCONTEXT> ????????????<DOMAIN:PRODUCTDOMAINCONTEXT /> ????????</RIACONTROLS:DOMAINDATASOURCE.DOMAINCONTEXT>?? ????????<RIACONTROLS:DOMAINDATASOURCE.FILTERDESCRIPTORS> ????????????<RIADATA:FILTERDESCRIPTORCOLLECTION LogicalOperator="And"> ??????????????<RIADATA:FILTERDESCRIPTOR Value="Blue"?PropertyPath="Color"Operator="IsEqualTo"?/> ??????????????<RIADATA:FILTERDESCRIPTOR PropertyPath="ListPrice"Operator="IsLessThanOrEqualTo"> ??????????????????<RIACONTROLS:CONTROLPARAMETER ??????????????????????ControlName="MaxPrice" ??????????????????????PropertyName="SelectedItem.Content" ??????????????????????RefreshEventName="SelectionChanged"?/> ??????????????</RIADATA:FILTERDESCRIPTOR> ????????????</RIADATA:FILTERDESCRIPTORCOLLECTION> ????????</RIACONTROLS:DOMAINDATASOURCE.FILTERDESCRIPTORS> ????</RIACONTROLS:DOMAINDATASOURCE> ????<COMBOBOX x:Name="MaxPrice"?Grid.Row="0"?Width="60"?SelectedIndex="0"> ????????<COMBOBOXITEM Content="100"?/> ????????<COMBOBOXITEM Content="500"?/> ????????<COMBOBOXITEM Content="1000"?/> ????</COMBOBOX> ????<DATAC:DATAGRID Grid.Row="1"?ItemsSource="{Binding Data, ElementName=source}"?/> </GRID>


分頁
當顯示大量實體的時候,我們會希望在用戶界面上提供分頁功能。DomainDataSource控件允許我們指定在一個頁面上裝載和顯現的實體數量。新紀錄只有在用戶導航到了還沒有裝載實體的頁面時才裝載。我們設置PageSize和LoadSize屬性來指定分頁的參數。然后,我們把一個DataPage實例綁定到DomainDataSource來實施分頁的接口。
注意:如果在應用程序中DataPager與實體框架數據存貯一起使用,我們必須對為DataPager從查詢返回的數據進行排序。因為實體框架不支持沒有OrderBy子句或在SL客戶端沒指定排序的分頁。
?

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 <GRID x:Name="LayoutRoot"?Background="White">? ????<GRID.ROWDEFINITIONS> ????????<ROWDEFINITION Height="Auto"?/> ????????<ROWDEFINITION Height="Auto"?/> ????</GRID.ROWDEFINITIONS> ????<RIACONTROLS:DOMAINDATASOURCE x:Name="source"?LoadSize="30"?PageSize="15"AutoLoad="true"?QueryName="GetProducts"> ????????<RIACONTROLS:DOMAINDATASOURCE.DOMAINCONTEXT> ????????????<DOMAIN:PRODUCTDOMAINCONTEXT /> ????????</RIACONTROLS:DOMAINDATASOURCE.DOMAINCONTEXT> ????????<RIACONTROLS:DOMAINDATASOURCE.SORTDESCRIPTORS> ????????????<RIADATA:SORTDESCRIPTOR PropertyPath="ListPrice"?/> ????????</RIACONTROLS:DOMAINDATASOURCE.SORTDESCRIPTORS> ????</RIACONTROLS:DOMAINDATASOURCE> ????<DATAC:DATAGRID Grid.Row="0"?ItemsSource="{Binding Data, ElementName=source}"?/> ????<DATAC:DATAPAGER Grid.Row="1"?Source="{Binding Data, ElementName=source}"?/> </GRID>


編輯
進行數據更改,需要調用DomainDataSource對象的SubmitChanges方法。要取消更改,調用RejectChanges方法。

轉載于:https://www.cnblogs.com/Areas/archive/2011/09/09/2172184.html

總結

以上是生活随笔為你收集整理的Silverlight WCF RIA服务(二十三)Silverlight 客户端 4的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。