欧美日韩亚-欧美日韩亚州在线-欧美日韩亚洲-欧美日韩亚洲第一区-欧美日韩亚洲二区在线-欧美日韩亚洲高清精品

金喜正规买球

logo DevExpress WinForm中文手冊

導航和視圖管理


立即下載DevExpress WinForms

 本主題解釋了如何在不同的應用程序視圖之間實現導航,以及如何構建View-ViewModel關系。

標準導航服務

DevExpress MVVM框架包括許多,您可以利用它們來實現不同應用模塊(視圖)之間的導航。

使用任何MVVM服務包括三個主要步驟:

 1.在視圖中注冊服務時可以全局注冊(它可以從任何應用程序視圖中獲得)或本地注冊(如果您打算僅從此模塊中使用它)。

2.在ViewModel中聲明一個屬性來檢索已注冊服務的實例。

C#:

public class ViewLocator : IViewLocator {
object IViewLocator.Resolve(string name, params object[] parameters) {
object viewModel = paremeters.Length==3 ? parameters[0] : null;
object parameter = parameters.Length==3 ? parameters[1] : null;
object parentViewModel = (paremeters.Length==3) ? paremeters[2] : paremeters[0] ;
if(name == nameof(CustomersView))
return new CustomersView()
//...
return null;
}
}

3.調用ViewModel中Service實例的公共API。

 例如,主應用程序的視圖有MvvmContext組件,它將主應用程序的表單(視圖)鏈接到“Form1ViewModel”ViewModel。

C#:

// View
mvvmContext1.ViewModelType = typeof(mvvmNavi.Form1ViewModel);

// ViewModel
[POCOViewModel()]
public class Form1ViewModel {
//...
}

VB.NET:

' View
mvvmContext1.ViewModelType = GetType(mvvmNavi.Form1ViewModel)

Private Sub InitializeBindings()
Dim fluent = mvvmContext1.OfType(Of Form1ViewModel)()
End Sub
End Class

' ViewModel
<POCOViewModel()>
Public Class Form1ViewModel
'...
End Class

 該應用程序還有兩個UserControl,每個都有自己的MvvmContext組件,UserControl的視圖鏈接到它相應的ViewModel。

C#:

public partial class ViewA : UserControl {
MVVMContext mvvmContext;
public ViewA() {
mvvmContext = new MVVMContext();
mvvmContext.ContainerControl = this;
mvvmContext.ViewModelType = typeof(ViewAViewModel);
}
}

public class ViewAViewModel {
}

public partial class ViewB : UserControl {
MVVMContext mvvmContext;
public ViewB() {
mvvmContext = new MVVMContext();
mvvmContext.ContainerControl = this;
mvvmContext.ViewModelType = typeof(ViewBViewModel);
}
}

public class ViewBViewModel {
}

VB.NET:

Partial Public Class ViewA
Inherits UserControl

Private mvvmContext As MVVMContext
Public Sub New()
mvvmContext = New MVVMContext()
mvvmContext.ContainerControl = Me
mvvmContext.ViewModelType = GetType(ViewAViewModel)
End Sub
End Class

Public Class ViewAViewModel
End Class

Partial Public Class ViewB
Inherits UserControl

Private mvvmContext As MVVMContext
Public Sub New()
mvvmContext = New MVVMContext()
mvvmContext.ContainerControl = Me
mvvmContext.ViewModelType = GetType(ViewBViewModel)
End Sub
End Class

Public Class ViewBViewModel
End Class

提示:上面的代碼初始化了MvvmContext組件,并設置了它們的ViewModelType屬性,只是為了舉例說明。在實際的應用程序中,建議在設計時將組件放在 Forms 和 UserControls上,并使用智能標簽菜單來設置ViewModels。

下面的例子說明了如何根據您的任務選擇和使用不同的DevExpress服務:

例1:DocumentManager選項卡

 主應用程序表單(視圖)有一個空的文檔管理器,任務是將UserControls A和B顯示為DocumentManager選項卡(文檔)。

要管理DocumentManager文檔,請使用并在主視圖中注冊它:

C#:

public Form1() {
InitializeComponent();
//. . .
var service = DocumentManagerService.Create(tabbedView1);
service.UseDeferredLoading = DevExpress.Utils.DefaultBoolean.True;
mvvmContext1.RegisterDefaultService(service);
}

VB.NET:

Public Sub Form1()
InitializeComponent()
'. . .
Dim service = DocumentManagerService.Create(tabbedView1)
service.UseDeferredLoading = DevExpress.Utils.DefaultBoolean.True
mvvmContext1.RegisterDefaultService(service)
End Sub

在主ViewModel中,實現一個屬性來檢索注冊服務的實例:

C#:

[POCOViewModel()]
public class Form1ViewModel {
protected IDocumentManagerService DocumentManagerService {
get { return this.GetService<IDocumentManagerService>(); }
}
}

VB.NET:

<POCOViewModel()>
Public Class Form1ViewModel
Protected ReadOnly Property DocumentManagerService() As IDocumentManagerService
Get
Return Me.GetService(Of IDocumentManagerService)()
End Get
End Property
End Class

 DocumentManagerService.CreateDocument和DocumentManagerService.FindDocumentById方法允許您創建和定位文檔,然后可以調用IDocument.Show方法來顯示它們。

C#:

// main ViewModel
public void CreateDocument(object id, string documentType, string title) {
var document = DocumentManagerService.FindDocumentById(id);
if (document == null) {
document = DocumentManagerService.CreateDocument(
documentType, parameter: null, parentViewModel: this);
document.Id = id;
document.Title = title;
}
document.Show();
}

VB.NET:

' main ViewModel
Public Sub CreateDocument(ByVal id As Object, ByVal documentType As String, ByVal title As String)
Dim document = DocumentManagerService.FindDocumentById(id)
If document Is Nothing Then
document = DocumentManagerService.CreateDocument(documentType, parameter:= Nothing, parentViewModel:=Me)
document.Id = id
document.Title = title
End If
document.Show()
End Sub

這個核心方法可以在各種場景中使用。

  • 創建一個帶有特定UserControl的新文檔,并在應用程序啟動時加載它:

C#:

// main ViewModel
readonly static object ViewA_ID = new object();
readonly static object ViewB_ID = new object();

public void CreateDocumentA() {
CreateDocument(ViewA_ID, "ViewA", "UserControl A");
}

public void CreateDocumentB() {
CreateDocument(ViewB_ID, "ViewB", "UserControl B");
}

// main View
var fluent = mvvmContext1.OfType<Form1ViewModel>();
fluent.WithEvent(this, "Load").EventToCommand(x => x.CreateDocumentA);

VB.NET:

' main ViewModel
Private ReadOnly Shared ViewA_ID As New Object()
Private ReadOnly Shared ViewB_ID As New Object()

Public Sub CreateDocumentA()
CreateDocument(ViewA_ID, "ViewA", "UserControl A")
End Sub

Public Sub CreateDocumentB()
CreateDocument(ViewB_ID, "ViewB", "UserControl B")
End Sub

' main View
Dim fluent = mvvmContext1.OfType(Of Form1ViewModel)()
fluent.WithEvent(Me, "Load").EventToCommand(Function(x) x.CreateDocumentA)

為每個UserControl創建一個文檔,并在啟動時加載所有這些文檔。

C#:

// main ViewModel
public void CreateAllDocuments() {
CreateDocument(ViewA_ID, "ViewA", "UserControl A");
CreateDocument(ViewB_ID, "ViewB", "UserControl B");
}

// main View
var fluent = mvvmContext1.OfType<Form1ViewModel>();
fluent.WithEvent(this, "Load").EventToCommand(x => x.CreateAllDocuments);

VB.NET:

' main ViewModel
Public Sub CreateAllDocuments()
CreateDocument(ViewA_ID, "ViewA", "UserControl A")
CreateDocument(ViewB_ID, "ViewB", "UserControl B")
End Sub

' main View
Dim fluent = mvvmContext1.OfType(Of Form1ViewModel)()
fluent.WithEvent(Me, "Load").EventToCommand(Function(x) x.CreateAllDocuments)
  • 將UI元素(例如,Ribbon按鈕)綁定到一個命令,該命令創建一個具有特定UserControl的新文檔。

C#:

// main ViewModel
public void CreateDocument(object id, string documentType, string title) {
var document = DocumentManagerService.CreateDocument(
documentType, parameter: null, parentViewModel: this);
document.Id = id;
document.Title = title;
document.Show();
}

public void CreateDocumentA() {
CreateDocument(new object(), "ViewA", "UserControl A");
}

public void CreateDocumentB() {
CreateDocument(new object(), "ViewB", "UserControl B");
}

// main View
fluent.BindCommand(bbiCreateDocA, x => x.CreateDocumentA);
fluent.BindCommand(bbiCreateDocB, x => x.CreateDocumentB);

VB.NET:

' main ViewModel
Public Sub CreateDocument(ByVal id As Object, ByVal documentType As String, ByVal title As String)
Dim document = DocumentManagerService.CreateDocument(documentType, parameter:= Nothing, parentViewModel:=Me)
document.Id = id
document.Title = title
document.Show()
End Sub

Public Sub CreateDocumentA()
CreateDocument(New Object(), "ViewA", "UserControl A")
End Sub

Public Sub CreateDocumentB()
CreateDocument(New Object(), "ViewB", "UserControl B")
End Sub

' main View
fluent.BindCommand(bbiCreateDocA, Function(x) x.CreateDocumentA)
fluent.BindCommand(bbiCreateDocB, Function(x) x.CreateDocumentB)

示例2:導航框架

 主表單(視圖)有一個空的NavigationFrame組件,該組件可以存儲多個頁面,但一次只允許用戶查看一個頁面。要用頁面填充該組件并實現導航,請使用NavigationService。

  • 全球服務注冊:

C#:

// main View
var service = NavigationService.Create(navigationFrame1);
mvvmContext1.RegisterDefaultService(service);

VB.NET:

' main View
Dim service = NavigationService.Create(navigationFrame1)
mvvmContext1.RegisterDefaultService(service)
  • 檢索Service實例的屬性:

C#:

// main ViewModel
protected INavigationService NavigationService {
get { return this.GetService<INavigationService>(); }
}

VB.NET:

' main ViewModel
Protected ReadOnly Property NavigationService() As INavigationService
Get
Return Me.GetService(Of INavigationService)()
End Get
End Property
  • 導航:

C#:

// main View
var fluent = mvvmContext.OfType<RootViewModel>();
fluent.WithEvent(mainView, "Load")
.EventToCommand(x => x.OnLoad);

// main ViewModel

public void OnLoad() {
NavigationService.Navigate("ViewA", null, this);
}

VB.NET:

' main View
Private fluent = mvvmContext.OfType(Of RootViewModel)()
fluent.WithEvent(mainView, "Load").EventToCommand(Function(x) x.OnLoad)

' main ViewModel

public void OnLoad()
NavigationService.Navigate("ViewA", Nothing, Me)

Navigate方法可以接受參數作為它的第二個參數,這允許您在導航模塊之間傳遞任何數據。DevExpress Demo Center示例演示了如何將先前活動模塊的名稱傳遞給當前選擇的視圖,注意在這個例子中,全局服務注冊允許每個子ViewModel使用這個服務的API。

示例3:情態形式

 在本例中,子視圖在其他應用程序窗口上方顯示為單獨的表單。要做到這一點,請使用WindowedDocumentManagerService服務。

  • 本地注冊:

C#:

// main View
var service = WindowedDocumentManagerService.Create(mainView);
service.DocumentShowMode = WindowedDocumentManagerService.FormShowMode.Dialog;
mvvmContext.RegisterService(service);

VB.NET:

' main View
Dim service = WindowedDocumentManagerService.Create(mainView)
service.DocumentShowMode = WindowedDocumentManagerService.FormShowMode.Dialog
mvvmContext.RegisterService(service)
  • 檢索Service實例的屬性:

C#:

// main ViewModel
protected IDocumentManagerService WindowedDocumentManagerService {
get { return this.GetService<IDocumentManagerService>(); }
}

VB.NET:

' main ViewModel
Protected ReadOnly Property WindowedDocumentManagerService() As IDocumentManagerService
Get
Return Me.GetService(Of IDocumentManagerService)()
End Get
End Property
  • 導航:

C#:

// main View
var fluent = mvvmContext.OfType<MainViewModel>();
fluent.BindCommand(showBtn, x => x.ShowAcceptDialog);

// main ViewModel
int id = 0;
public void ShowAcceptDialog() {
var viewModel = ViewModelSource.Create(() => new ViewAViewModel());
var document = WindowedDocumentManagerService.FindDocumentById(id);
if(document == null) {
document = WindowedDocumentManagerService.CreateDocument(string.Empty, viewModel: viewModel);
document.Id = id;
document.Title = "Accept Dialog";
}
document.Show();
}

VB.NET:

' main View
Dim fluent = mvvmContext.OfType(Of MainViewModel)()
fluent.BindCommand(showBtn, Function(x) x.ShowAcceptDialog)

' main ViewModel
Private id As Integer = 0
Public Sub ShowAcceptDialog()
Dim viewModel = ViewModelSource.Create(Function() New ViewAViewModel())
Dim document = WindowedDocumentManagerService.FindDocumentById(id)
If document Is Nothing Then
document = WindowedDocumentManagerService.CreateDocument(String.Empty, viewModel:= viewModel)
document.Id = id
document.Title = "Accept Dialog"
End If
document.Show()
End Sub
  • 結束情態形式:

C#:

public class ChildViewModel : IDocumentContent {
public void Close() {
// Closes the document.
DocumentOwner?.Close(this);
}
public IDocumentOwner DocumentOwner { get; set; }
public object Title { get; set; }
void IDocumentContent.OnClose(CancelEventArgs e) {
/* Do something */
}
void IDocumentContent.OnDestroy() {
/* Do something */
}
}

VB.NET:

Public Class ChildViewModel
Implements IDocumentContent

Public Sub Close()
' Closes the document.
DocumentOwner?.Close(Me)
End Sub
Public Property DocumentOwner() As IDocumentOwner
Public Property Title() As Object
Private Sub IDocumentContent_OnClose(ByVal e As CancelEventArgs) Implements IDocumentContent.OnClose
' Do something
End Sub
Private Sub IDocumentContent_OnDestroy() Implements IDocumentContent.OnDestroy
' Do something
End Sub
End Class

ViewType屬性

 如果您遵循命名約定(“ModuleX”視圖的ViewModel被稱為“ModuleXViewModel”),并且視圖/ViewModel位于相同的命名空間中,則上述示例中顯示的MVVM服務的默認使用就足夠了,否則框架將無法定位與給定ViewModule相關的視圖。要解決這個問題,需要用ViewType屬性修飾Views,來顯式地設置View-ViewModel關系。

C#:

[DevExpress.Utils.MVVM.UI.ViewType("AccountCollectionView")]
public partial class AccountsView {
// ...
}

[DevExpress.Utils.MVVM.UI.ViewType("CategoryCollectionView")]
public partial class CategoriesView {
// ...
}

[DevExpress.Utils.MVVM.UI.ViewType("TransactionCollectionView")]
public partial class TransactionsView {
// ...
}

VB.NET:

<DevExpress.Utils.MVVM.UI.ViewType("AccountCollectionView")>
Partial Public Class AccountsView
' ...
End Class

<DevExpress.Utils.MVVM.UI.ViewType("CategoryCollectionView")>
Partial Public Class CategoriesView
' ...
End Class

<DevExpress.Utils.MVVM.UI.ViewType("TransactionCollectionView")>
Partial Public Class TransactionsView
' ...
End Class

單獨程序集中的視圖

 當視圖位于單獨的程序集中或具有自定義構造函數時,ViewType屬性是不夠的。在這些情況下,請使用以下方法之一:

IViewService

 將導航服務實例轉換為DevExpress.Utils.MVVM.UI.IViewService接口。

C#:

var service = DevExpress.Utils.MVVM.Services.DocumentManagerService.Create(tabbedView1);
var viewService = service as DevExpress.Utils.MVVM.UI.IViewService;
mvvmContext1.RegisterService(service);

VB.NET:

Dim service = DevExpress.Utils.MVVM.Services.DocumentManagerService.Create(tabbedView1)
Dim viewService = TryCast(service, DevExpress.Utils.MVVM.UI.IViewService)
mvvmContext1.RegisterService(service)

之后,處理QueryView事件并根據所需的視圖類型動態分配視圖。

C#:

viewService.QueryView += (s, e) =>
{
if(e.ViewType == "View1")
e.Result = new Views.View1();
//...
};

VB.NET:

AddHandler viewService.QueryView, Sub(s, e)
If e.ViewType = "View1" Then
e.Result = New Views.View1()
End If
'...
End Sub

 要指定需要哪種視圖類型,您需要在導航ViewModel中實現相應的邏輯。例如,下面的代碼將所有可用的視圖枚舉為Modules集合中的項。

C#:

public class MyNavigationViewModel {
protected IDocumentManagerService DocumentManagerService {
get { return this.GetService<IDocumentManagerService>(); }
}
//Lists all available view types
public string[] Modules {
get { return new string[] { "View1", "View2", "View3" }; }
}
//Bind this command to required UI elements to create and display a document
public void Show(string moduleName) {
var document = DocumentManagerService.CreateDocument(moduleName, null, this);
if(document != null) {
document.Title = moduleName;
document.Show();}
}
}

VB.NET:

Public Class MyNavigationViewModel
Protected ReadOnly Property DocumentManagerService() As IDocumentManagerService
Get
Return Me.GetService(Of IDocumentManagerService)()
End Get
End Property
'Lists all available view types
Public ReadOnly Property Modules() As String()
Get
Return New String() { "View1", "View2", "View3" }
End Get
End Property
'Bind this command to required UI elements to create and display a document
Public Sub Show(ByVal moduleName As String)
Dim document = DocumentManagerService.CreateDocument(moduleName, Nothing, Me)
If document IsNot Nothing Then
document.Title = moduleName
document.Show()
End If
End Sub
End Class
控制APIs

 您可以使用導航服務管理的單個視圖控件的API。例如,如果視圖應該顯示為DocumentManager選項卡,便處理BaseView.QueryControl事件來填充文檔,View類型存儲Document.ControlName屬性值。

C#:

var service = DevExpress.Utils.MVVM.Services.DocumentManagerService.Create(tabbedView1);
mvvmContext1.RegisterService(service);

tabbedView1.QueryControl += (s, e) =>
{
if(e.Document.ControlName == "View 2")
e.Control = new Views.View2();
//...
};

VB.NET:

Dim service = DevExpress.Utils.MVVM.Services.DocumentManagerService.Create(tabbedView1)
mvvmContext1.RegisterService(service)

AddHandler tabbedView1.QueryControl, Sub(s, e)
If e.Document.ControlName = "View 2" Then
e.Control = New Views.View2()
End If
'...
End Sub
IViewLocator

 所有DevExpress導航服務都使用DevExpress.Utils.MVVM.UI.IViewLocator服務來查找和管理所需的視圖,您可以創建此服務的自定義實現并注冊它(本地或全局)來更改它與應用程序視圖的工作方式。請參閱本文了解如何實現和注冊自定義服務:services。

視圖和視圖模型生存期

 處置視圖也處置MvvmContext和ViewModel,您既可以實現IDisposable.Dispose方法,也可以將命令綁定到視圖的HandleDestroyed事件,以便在ViewModel被處置時執行操作。

C#:

// ViewModel
public ViewModel() {
// Registers a new connection to the messenger.
Messenger.Default.Register(...);
}
public void OnCreate() {
// Captures UI-bound services.
EnsureDispatcherService();
}
public void OnDestroy() {
// Destroys a connection to the messanger.
Messenger.Default.Unregister(...);
}
IDispatcherService dispatcher;
IDispatcherService EnsureDispatcherService() {
return dispatcher ?? (dispatcher = this.GetRequiredService<IDispatcherService>());
}

// View (UserControl/Form)
fluent.WithEvent(this, nameof(HandleCreated)).EventToCommand(x => x.OnCreate);
fluent.WithEvent(this, nameof(HandleDestroyed)).EventToCommand(x => x.OnDestroy);

VB.NET:

Public Sub New()
' Registers a new connection to the messenger.
Messenger.Default.Register(...)
End Sub
Public Sub OnCreate()
' Captures UI-bound services.
EnsureDispatcherService()
End Sub
Public Sub OnDestroy()
' Destroys a connection to the messanger.
Messenger.Default.Unregister(...)
End Sub
Private dispatcher As IDispatcherService
Private Function EnsureDispatcherService() As IDispatcherService
If dispatcher IsNot Nothing Then
Return dispatcher
Else
dispatcher = Me.GetRequiredService(Of IDispatcherService)()
Return dispatcher
End If
End Function

' View (UserControl/Form)
fluent.WithEvent(Me, nameof(HandleCreated)).EventToCommand(Function(x) x.OnCreate)
fluent.WithEvent(Me, nameof(HandleDestroyed)).EventToCommand(Function(x) x.OnDestroy)
掃碼咨詢


添加微信 立即咨詢

電話咨詢

客服熱線
023-68661681

TOP
国产精彩| 国产欧美一区二区三区不 | 日韩在线视频中文字幕 | 91成人精品视频 | 国产h视频在线观看 | 手机看片久 | 日本.欧美一区二区三区 | 亚洲欧洲自拍偷线高清一区二区 | 欧美黑人疯狂性受 | 激情五月综合激情在线观看 | 亚洲欧美国产精品一区二区 | 国产精品最新资源在线 | 亚欧洲精品在线入口 | 亚洲日韩aⅴ小电影 | 观看免费 | 久热最新精品视频在线观看 | 精品一精品国产一级 | 日本免费在线观看视频 | 精品国产免费第一区二区三区 | 久精品国产欧美亚洲色a大片 | 午夜在线视频影院 | 国产一级一片免费播放放 | 日韩亚洲欧美一区二区三区综合 | 国产视频高清在线观看 | 99久热这 | 露脸美女另类 | 日本免费在线观看视频 | 在线观看国产一区二区三区 | 亚洲欧美另类日韩综合 | 国产香蕉 | 成人拍拍拍免费视频网站 | 国产一区二区在线观看免费 | 国产偷窥成熟女精品视频 | 国产女同女互慰 | 欧美推油无尺码 | 激情深爱五月开心婷婷综合 | 两个人看的www视频免费完整版 | b站永久免费看片大全 | 欧美日韩韩高清在线不卡 | 国产福利在线观看视频 | 日韩一区二区三区在线 | 国产精品第一偷怕自怕1区 7799天天综合 | 国产欧美自拍偷怕日韩亚洲 | 国产91精品在线观看导航 | 国产欧美日韩综合视频专区 | 91大神是啥| 精品一区二区三区在线 | 欧洲亚洲国产日韩综合一区 | 99久视频只有精品2025 | 国产美女在线观看 | 天美麻花星空视 | 精品国产污污免费网站入口 | 国产又大又粗 | 国产思思99re99在线观看 | 免费观看又黄又硬又爽的视频 | 福利一区在线观看 | 乌鸦传媒| 午夜视频在线免费观看 | 日本免费一区二区三区在线播放 | 九九99九| 天黑黑影院免费观看视频在线播放 | 精品免费国产影视 | 欧美又大粗又爽又黄大片视频 | 日韩一区二区三区免费精品 | 精品国产免费第一区二区 | 日本免费亚洲视频 | 国产成a人亚洲精v品在线观看 | 97国产婷婷综合在线视 | 国产伦精一品二品三品 | 日本免费一区二区五区六区 | 精品一区二区6 | 国产操操 | 不用播放器的a网站 | 亚洲成年网| 国产精品广西柳州莫菁泽译网 | 亚洲综合另类小说 | 日韩一级香蕉片在线观看 | 免费在线观看电视剧电影的网站 | 亚洲福利中文字幕在线网址 | 二区精品在线播放 | 国产在线精品国自产拍影院同性 | 欧美亚日韩一二三四 | 女人与公驹交酡全过程 | 亚洲欧美综合在线精品 | 羞羞影院午夜男女爽爽视频免费 | 日韩熟女高清精品专区 | 日本亚洲欧洲免费无线码 | 亚洲影院| 亚洲第一区精 | 亚洲欧美综合另类 | 亚洲欧美日本另类 | 69xxxxx中国女人 | 中文字幕在线精品男人的天堂 | 午夜小视频网 | 亚洲国产丝袜美腿在线播放 | 欧美成aⅴ人高清免费观看 精品人伦一区二区三区 | 蜜臀精品一区二区三区在线观看 | 多人性战交疯狂派对 | 亚洲欧美人成综合在线最新 | 亚洲欧洲欧美中文日韩 | 欧美日韩国产在线人 | 欧美日韩另类视频在线观看 | 国产午夜福利精品一 | 国产手机自拍视频 | 国产高清vs在线视频 | 亚洲中文字幕在线停止 | 91草莓视频在线观看 | 产免费一区二区三区视频 | 免费在线播放视频 | 亚洲日本道1区2区3区不卡 | h视频在线观看免费 | 欧美丰满老妇熟乱xxxxx视频 | 911天堂国产在线观看 | 日本精品一区二区三区四区 | 日本日本乱码伦视频在线观看 | 欧美一级一区二区电影 | 91精品国产综合久蜜臀 | 国产日韩欧美在线精品综合网 | 囯产精品一区二区三区乱码 | 免费人成视频年轻人在线无毒不卡 | 亚欧乱色国产精品免费九库 | 91精品欧 | 国产一级做a爱免费 | 亚洲综合色一区二区三区 | 亚洲人成电影网站国产精品 | 日本亚洲精品 | 宅男66lu国产在线观看 | 桃色一区二区三区 | 欧美日韩免费一区二区在线观看 | 精品亚洲国产成v人片传媒 欧美性猛 | 国产手机精品一区二区 | 免费观看亚洲 | 亚洲精品老司机综合影院 | 国产观看免费在线久 | 国产二代与美女酒店在线播放 | 亚洲国产日韩欧美一级三级 | 日韩欧美一区二区三区在线观看 | 欧美日精品一区二区在线观看 | 免费人成黄页网站大全在线观 | 十大黄台禁用 | 噜噜噜在线视频免费观看 | 不用下载播放器的电影网 | 亚洲精品国产福利 | 国产精品成人h片在线 | 视频一区二区三区免费观看 | 国产精品区网红主播在线观看 | 又粗又大又硬又爽的免费视频 | 午夜成人爽爽爽视频在线观看 | 中文字字幕在线中文乱码电影 | 国产精品日韩专区第一页 | 日本日本乱码伦视频在线观看 | 91高清国产在线观看 | 国产专区一va亚洲v天堂 | 一级特黄国产免费大片 | 国产天堂在线丝袜一区 | 日本三级中文字版电影 | 91人成亚洲高清在线观看 | 亚洲欧美国 | 国产一级a毛一级a在线观看 | 国产天堂精品 | 亚洲v欧洲v | 最新国产在线视频 | 国产网红刘婷在线视频 | 一出一进一爽一粗一大视频免 | 亚洲日韩中文字幕一区 | 破了亲妺妺的处免费视频国产 | 在线涩涩免费观看国产精品 | 最新国产精品拍自在线观看 | 精品影片在线观看的网站 | 亚洲欧洲日产国产最新 | 国产福利不卡在线观看 | 国产一级在线现免费观看 | 破女全过程完整版 | 天天天天香蕉线视频国产 | 国产免费人成视频在线观看播放 | 国产大陆精品另类xxxx | 日本女优中文字幕 | 国产一区二区三区四区在 | 亚洲精品国产精品制服丝袜 | 国产精品一区二区手机看片 | 国产免费三级a在线观看 | 一扒二脱三插片在 | 亚洲精品a∨在线国自产拍 露脸对白不带套在线播放 亚洲一级大片 | 日本一级淫片a免费播 | 国产午夜影视大全免费观看 | 老司机99视频在线免费观看 | 国产一级特黄a大片免费 | 黑人巨大精品欧美一区在线 | 国产人妖的免 | 欧美亚洲一区二区三区导航 | 羞羞视频免费入口网站 | 一区二区三区亚洲高清 | 欧美一区二区三区精品视频在线 | 欧美激情区二区一区三 | 野花韩国高清免费视频6 | 日韩亚洲欧美精品性爱 | 日本一本二本三区免费 | 成视人a免费观看视频 | 国产精品视频一区二区噜噜 | 国产精品日韩专区第一页 | 欧美一区二区不卡视频 | 91精品免费国产高清在线 | 了解最新38在线信息 | 中文字幕日本有码视频在线 | 在线亚洲日韩欧美一区二区 | 国产乱码一区二区三区爽爽爽 | 国产永久在线 | 最刺激黄a大片免 | 亚精产品 | 国产在线脚交免费网站脚丫 | 2025最新电影电视剧 | 国产短视频精品区第一页 | 国产在线观看一区二区三区 | 最新电影电视剧观看 | 欧美天堂| 美女黄频 | 在线观看欧美影 | 精品国产午夜福利在线观看蜜月 | www在线观看一区二区三区 | 爱视频在线观看 | 午夜免费视频 | 性xxx69xxx视频在线观看 | 亚洲午夜福利院在线 | 丰满尤物一区二区三区 | 好吊色欧美一区二区三区视频 | 国产精品自在线 | 亚洲国产精品视频自拍 | 国产蝌蚪视频一区二区三区 | 亚洲vs日韩vs| 日本免费不卡高清网站视频 | 福利在线免费 | 精品国产综合成人亚洲区 | 欧美午夜在线视频 | 国产精品中文久 | 亚洲第一视频在线 | 国产一区二区视频在线观看 | 亚洲国产中文在线二区三区免 | 91欧美日韩91桃 | 欧美一区二区三区免费看 | 91国自啪| 大地影院mv在线观看高清 | 亚洲精品我不卡 | 爱情岛论坛 | 亚洲欧美国产日韩精品 | 国产精品九九视频 | 老司机成人亚洲精品影院 | 日本不卡中文字幕一区二区 | 欧美日本一区二区三区道 | 国产91茄子在线播放 | 飘雪免费手机全集在线观看 | 水蜜桃视频网站在线观看网址 | 国产中文字幕精品视频 | 国产在线观看 | 国产盗摄亚洲中国 | 国产98在线| 精品自拍视频在线观看电影 | 国产丝袜精品 | 午夜三级a三级 | 国语精品91自产拍在线 | 一区二区三区在线观看 | 人成在线v网站 | 国产精品自拍视频 | 91激情 | 中国免费高清视频在线观看 | 欧美激情视频在线播放 | 国产精品直 | 精品福利一区二区三区免费视频 | 男男女女爽爽爽免费视频 | 99久热re在线精品视频 | 国产痴汉系列在线播放 | 国产亚洲精品bt | 国产欧美va欧美va香蕉在 | 字幕一区二区三区四区 | 国产精品熟女一区二区 | 国产又色又爽又黄又刺激的网站 | 日韩国产制服在线 | 国产12页 | 亚洲高清一区二区三区四区 | 特色特色的欧美大片 | 欧美特黄一免在线观看 | 成人精品一区二区三区电影黑人 | 成人国产精品一区二区免费 | 国产香蕉人在线播放视频网站 | 亚洲中文字幕精品一区二区三区 | 日本一区视频在线播放 | 国产综合色产在线视 | 91伊人影院 | 国产精品任我爽爆在线播放 | 欧美精品在线一区二区三区 | 一级风流片a级在线播放 | 国产福利免费视频 | 亚洲一级a大片一级 | 中文字幕不卡精 | 精品国产福利片在 | 成人亚欧网站 | 日本有码中文字幕第二页 | 豆奶app官方网站 | 色欧美老角色 | 精品自拍9 | 日日夜夜精品 | 国产一级淫片a免费播放口欧美 | 精品动漫一区二区 | 国产精品喷水 | 欧美一区二区三区日韩精品 | 精品亚洲一区二区在线播放 | 亚洲第一性网 | 性午夜视频在线观看 | 欧美亚洲综合成人专区 | 好吊色青青青国产欧美日韩 | 免费国产在线精品一区 | 视频在线播放 | 国产精品岛国 | 亚欧乱色国产精品免费视频 | 看片免费不卡 | 国自产拍在线视频天 | a国产亚洲 | 成人全部免费观看1314色 | 亚洲精品有码在线观看 | 欧美性受一区二区三区 | 亚洲日韩国产一区二区三区在线 | 天美麻花星空免费观看乡村版 | 欧美视频一区二区三区 | 日国产一区三区三区在线观看 | 亚洲精品r级在线观看网站 国产黄大片在线观看画质 欧美无砖专区一中文字幕 欧美亚日韩国产aⅴ精品中极品 | 国产精品成熟老女人 | 国产啪精品视频网站免费尤物 | 最近中文字幕 | 性色做爰 | 国产精品大片在线看 | 国产熟女乱伦一区二区 | 国语自产拍视频在线观看 | 国产精品边做奶 | 2025国产品在线视频不卡不卡 | 一区二区区别是什么 | 日韩在线一区二区三区观 | 国产乱子伦60女人的皮视频 | 91秒拍国产福利一区 | 伦视频中文字幕亚洲天堂网 | 三级国产国语三级在线2 | 亚洲欧美精品变态另类 | 亚洲欧美日韩ⅴ在线观看91 | 热99re6久精品国产首页青柠 | 国产精品视频观看 | 国产精品多p对白交换绿 | 国产一区视频在线观看免费 | 亚洲+欧洲+日产+欧美 | 免费看男人j放进女人p的视频 | 国产精品视频免费一区二区 | 乱码一码二码三码四码狼人 | 国产在线观看网站萌白酱视频 | 国内综合精品午 | 国产精品v亚洲精品v日韩精品 | 免费看国产精品3a黄的视频 | 国产精品亚洲欧美动漫卡通 | 国产小视频在线观看免费 | 国产小视频在线观看免费 | 国产黄在线观看免费观看网站不卡 | 国产片免费 | 精品欧美日韩一区二区三区 | 国产极品精频在线观看 | 国产99视频精品免视看7 | 女人的天堂a国产 | 国产小视频在线播放 | 九一视频在线观看 | 伊人热热 | 污星人国产 | 超薄丝袜足j| 亚洲人成网址在线播放小说 | 免费va国产高清大片在线 | 欧美国产激情18 | 国产精品今日更新国产主播 | 一区二区三欧美 | 在线看片免费人成视频手机观看 | 国内激情视频 | 久精品国产欧美亚洲色a大片 | 中文在线天堂网www 日本高清不卡中文字幕网 anquye | 色妺妺在线视频喷水 | 欧美交a欧美精品喷水 | 精品国产亚一区二区三区 | 91精品视频在线观看免费 | 亚洲精品中文字幕无乱码 | 日日插人人插天天插 | 国产偷伦精品视频 | 亚洲大片精 | 国产欧美日韩视频在线 | 美女黄频 | 午夜视频在线免费观看 | 性xxxx| 午夜三级福利在线观看 | 女性女同性aⅴ免费观看 | 探花网站 | 亚洲欧美日韩一区中文字幕 | 日韩精品日韩 | 中文文字幕视频在线观看 | 亚洲视频高清不卡在线观看 | 欧美精品自拍一区 | 成人国产精品高清 | 国产高清一区二区三区视频 | 国产秘精品入口免费软件 | 国产高清一 | 亚洲综合激情五月丁香六月 | 国产aⅴ精品 | 不卡影视| 欧美三级在线看 | 日本sm| 精品免费看一区二区三区 | 精品一区二区三区免费 | 国产精品亚洲精品一区二区三区 | 都市激情第一页 | 亚洲欧美国产日韩精品在线 | 国产精品第 | 一进一出又大又粗爽视频 | 免费一区二区三区视频 | 午夜韩国理论片在线观看 | 九九在线精品观看 | 免费人成在线观看网站品爱网 | 免费高清在线电影院 | 国产点击进入在线 | 国自产拍在线视频天 | 欧美色吊丝人人添人人摸 | 日韩一区二区三区四区区区 | 亚洲痴女| 色午夜日本高清视频www | 欧美性白人极 | 成人影片一区免费观看 | 国产电影在线观看 | 91精品视频免费在线观看 | 国产黑色丝袜在线观看下 | 亚欧洲乱码视频在线专区网站 | 日韩欧美亚洲一区二区三区四 | 两性色午夜视频在线观看 | 日韩成人精品二区 | 国产精品日韩精品在线播放 | 国产美女遭 | 国产欧美一区二区精品婷婷 | 国产短裙高 | 性爱国产精品福利在线 | 美女国产毛 | 亚洲日韩国产综合区 | 国产suv精品一 | 二区日韩国产精品 | 欧美日韩国产一区二区三区 | 国产超清精品在线观看 | 两性色午夜视频免费播放 | 宝贝乖把腿分大一点h欧阳凝小说 | 九九99靖品 | 五月天综| 91九色在线观看 | 国产精品成人不卡在线观看 | 中文字幕一区二区不卡 | 不卡国产精品欧 | 亚洲国产中文日韩欧美在线 | 私人电影官网 | 狼群影院视频在线观看高清版 | 99re6热在 | 亚洲人成日韩中文字幕不卡 | 成人午夜看片在线观看 | 日韩综合一卡二卡三卡死四卡 | 在线亚洲 | 米奇欧美777四色影视在线 | 又污又爽又黄的网站 | 加勒比综合网 | 日日摸夜夜添欧美一区 | 国产自产21区最新资源 | 国产亚洲女人 | 欧美亚洲精品三区 | 日产精品一品二品三品 | 日韩欧美卡一卡二卡新区 | 亚洲国产精品看片在线观看 | 中文字幕电影一区二区 | 国产精品高清尿小 | 中文精品| 中字幕视频在线永久在线 | 亚洲欧美日韩精品中文乱码 | 国产精品露脸国语对白 | 真实国产精品视频400部 | 欧美激情一区二区三区高清视频 | 荫蒂添的好舒服视频囗交 | 中文字幕在线视频观看网站 | 日韩精品视频一区二区三区 | 美女aⅴ高清电影在线观看 国产一区二区三区免费在线 | 999精产 | 伊人影院视频 | 欧美日韩aa一级视频 | 欧美日韩亚州在线 | a级高清观看视频在线看 | 好看欧美亚洲国产 | 无色码中文字幕亚洲精品 | 欧美日韩一区精品视频一区二区 | 是每一个韩剧迷的韩剧tv! | 国产乱码精品一区二区三区四川人 | 国产理论视频在线观看 | 日韩a优精品在线观看 | 欧美激情狠狠14p | 亚洲风情亚aⅴ在线发布 | 日日夜人人澡人人澡人人看免 | 激情自拍三级文学视频激情 | 国内揄拍国内 | 欧美一区二区三区激情 | 日本欧美一区二区三区在线 | 国产v欧美v日韩v亚洲老妇 | 韩国中文全部三级伦在线观看中文 | 精品一区二区三区电影 | 真实国产乱子伦对白在线 | 亚洲精品在线观看视频 | 青青草免费观看 | 偷拍视频 | 亚洲第一在线欧美自拍日韩 | 国偷自产91 | 欧美午夜不卡在线观看最新 | 欧美极品欧美日韩 | 精品伊人 | 日本国产欧美 | 国产馆精品推荐在线观看 | 国产女m视 | 丁香花在线视频观看免费 | 国产精品专区第1页 | 91大片淫黄大片在线天堂 | 欧美亚洲视 | 国产在线观看91精品不卡 | 网站资源多午夜激情影院 | 国产在线观看中文字幕 | 绝对真实国产乱 | 午夜福利一区二区三区在 | 亚洲欧美自 | 国产视频91尤物在线观看 | 午夜福利理论片在线观看 | 野花免费观看日本一个电影 | 精品视频一区二区三区在线观看 | 亚州第一页欧 | 天堂а√在线地址8中文种子 | 亚洲国产高清在线不卡 | 国产鲁鲁视频在线观看免费 | 亚洲国产精品第一区 | 亚洲成国产人片在线观看 | 精品免费 | 在线日韩中文字幕 | 日本美女一级视频 | 亚洲欧美日韩另类国产第一 | 成人国产精品 | 在线观看国产高清免费不卡黄 | 国产高清狼人香蕉 | 欧美日韩高清一区二区三区 | 亚洲老女人精品老妇女 | 欧美精品免费一区二区三区在线 | 国产va天堂va欧美va | 亚州精品一区中文字幕乱码 | 8又粗又硬又大 | 特黄aaaaaaa | 在线观看福 | 2025最新国产在线不卡a | 中文字幕手机在线看片不卡 | 中文字幕三级 | 亚洲日韩国产一本视频 | 国产精品极品美女自在线观看免费 | 色猫咪免费人成网站在线观看 | 中本亚洲欧美国产日韩 | 欧美亚洲校园第一页 | 99精品国产一区二区三区不卡 | 精产国品一二 | 亚洲精品欧美精品日韩精品 | 国产乱色国产精品免费视频 | 三级国产久| 日韩欧美一区二区三区在线观看 | 日产乱码一区二区 | 精品一区二区三区高清免费不 | 三区在线播放 | 精品国产亚洲三 | 日日夜夜| 国产熟女乱伦一区二区 | 九九在线视频观看只有精品 | 肉大捧一进一出免费视频 | 国产最新精品精品视频 | 妖精视频免费观看 | 日本大香伊蕉一区二区 | 国产系列欧美系列每日更新 | 亚洲精品影院一区二区 | 亚洲欧美精品变态另类 | 国产精品成人一区二区三区影院 | 欧美牛逼aa | 国产精品免费视频观看拍拍 | 最新电影电视剧观看 | 国产精品福利尤物youwu | 九操中文字幕在线观看 | 性欧美一级 | 91精品一区国产高清在线 | 国精品一区二区三区免费观看 | 欧美性色欧美a在线观看 | 日韩亚洲成a人片在线观看 国产日产成人免费视频在线观看 | 免费人成视频在线观看播放网站 | 91九色精品国产自产精品 | 精品一区二区三卡四卡网站 | 亚洲精品第一国产综合精品 | 日韩精品在线视频直播 | 猛进猛出 | 中文字幕日韩wm二在 | 日本精品中文字幕有码 | 手机在线看永 | 欧美日韩国产综合在线小说 | 又粗又大又硬又爽的免费视频 | 大陆aⅴ国 | 能看的国产乱片在线 | 人人草在线观看 | 免费一级中文 | 国产女主播午夜福利在线观看 | www国产| 色久悠悠婷婷综 | 国产精品天干天干在线综合 | 2025国产手机在线精品 | 日韩国产欧美亚洲一区不卡 | 精品精品国产自在97香蕉 | 国产一区二区三区乱码福利 | 精品高清亚| 亚洲人成影院在线观看 | 天天天天躁天天爱天天碰2025 | 日韩精品a在线视频 | 成人免费一区二区三区视频 | 真实国产普通话对白乱子子伦视频 | 亚洲日韩精| 日本va欧美va精品发布 | 日韩乱码人 | 在线播放一区二区 | 亚洲精品亚洲人成在线播放 | 国产欧美精品一区二区三区四区 | 热映电影| 国际国内自拍偷拍视频摄影 | 国产午夜福利短视频在线观看 | 欧洲不卡二卡三卡四卡免费 | 老牛影视电影网 | 欧美v国产v亚洲v日韩九九 | 国产精品91一区二区三区四区 | 国产亚洲欧美日韩一区图片 | 思思伊人 | 欧美高清中文字幕综合网 | 亚洲精品自 | 精精国产xxxx视频在线播放 | 最新好剧电影在线观影平台 | 日韩城人网站 | 91干屁眼视频 | 福利一区福利二区福利三区 | 亚洲精品动漫免费二区 | 亚洲日产综合欧美一区二区 | www日韩免费高清视频 | 国精产品一区一区三区有 | 亚洲欧美日本国产—区二区三区 | 亚洲综合色一区二区三区另类 | 午夜成人免费y在线观看 | 国产福利电影一区二 | 国产亚洲第一页电影 | 亚洲精品一品区二品区三区 | 成人激情视 | 乱色熟女综合一 | 国产精品成人v | 国产精品lululu在线观 | 欧美日本综合 | 成人āv专区精 | 最近中文字幕免费高清mv视频6 | 欧美精品日韩精品一卡 | 国产欧美在线一区二区三区 | 一区二区视频在线观看入口 | 2025年国产| 国产男女免费完整视频网页 | 国产在线观看免费视频在线 | 国产午夜成福利在线观看 | 国产99视频精 | 99精品观看电影 | 欧美日韩国产色综合一二三四 | 又粗又大又硬又爽的免费视频 | 青草视频线路 | 精品午夜国产在 | 免费人成网视频 | 欧美日韩激情 | 自产拍在线观看 | 国产系列欧美系列每日更新 | 亚洲色成人中文字幕网站 | 日本在线观看 | 白色丝袜| 亚洲欧洲自拍偷线高清一区二区 | 精品国产爽香蕉在线观看 | 国产日韩欧美福利 | 日本免费a视频 | 国产精品日韩在线 | 亚洲女女女同性video | 国产偷国产偷亚洲高清人 | 国产一级a爱做片免费看 | 日韩欧美精品在线观看 | 日本中文字幕精 | 日本中文字幕高清7 | 日韩精品专区在线影院重磅 | aaa午夜级特黄日本大片 | 亚洲激情| 色老头在线永久免费视频 | 又黄的免费视频 | 九九自拍视频 | 精品产区wnw2544 | 99久热re在线精品视频 | 亚洲日本在线免费看 | 最新日本一道免费一区二区 | 国精产品48x国精产品 | 亚洲国产一区视频 | 放荡老师张开双腿任我玩 | 国产精品视频在这里有精品 | 丰满老熟好大bbb | 国产精品午夜免费观看网站 | 最好看的高清电影在线观看 | 自拍偷拍亚洲 | 国产在线播精品第三 | 97色伦| 欧美巨大巨粗黑人性aaaaaa | 傲盟下载 | 国产一区二区xxx | 国产91 | 手机电视剧全集观看 | 国产中文99视频在线观看 | 专区中文字幕视频专区 | 国产精品高清尿小 | 成年人24小时在线免费观看视频 | 亚洲中文字幕乱伦 | 欧美日本一区二区视频在线播放 | 成人午夜影院网站 | 在线观看网站国产精品 | 不卡的神马电影网 | 国产在线国偷精品免费看 | 在线看片免费人成视久网 | 亚洲欧美另类一区二区 | 中文字幕无线码中文字幕网站 | 国语自产精品视频在线看 | 欧美激情拍拍拍 | 日韩欧美亚洲一区精选 | 中文字幕影院 | 亚洲欧美不卡视频 | 国产专区91 | 在线成人免费观看国产精品 | 手机国产乱子伦精品视频 | 欧美日韩国产欧美 | 丝袜国产精品视频二区 | 欧洲亚洲一区二区三区 | 成年人在线视频第一页 | 亚洲国产97视频在线 | 99这里只有精品在线观看视频播 | 一区二区三区四区免费视频 | 找老女人泻火 | 自偷自拍三级全三级视频 | 欧美激情综合亚洲一二区 | 酷客影院 | 高清欧美性xxxx成熟 | 精品理论片免费视频播放 | 97高清国语自产拍 | 国产精品综合在线观看 | 天天综合网网欲色 | 91po国产在| 国产乱国产乱老熟300部视频 | 日本伊人色综合网 | 国产精彩视频一区二区在线观看 | 亚洲国产精品青青网 | 国产极品视 | 国产黄在线观看免费观看不卡 | 国产在线视频国产 | 国产男女拍拍拍高清视频 | 国产精品亚洲欧韩在线 | 中文字幕亚洲无线码一区女同 | 日韩欧美亚洲一区精选 | 国产午夜亚洲精品国产 | 国产日韩欧美精品大秀 | 人成黄页在线观看国产 | 女女射最新视 | 日韩精品一区二区免费在线观看 | 在线看片国产日韩欧美亚洲 | 日本国产 | 欧美性大战 | 华人亚洲欧美精品国产 | 亚洲国产精品一区二区三区 | 老子午夜伦理不卡一级电影 | 手机看片102| 一区二区三欧美 | 青苹果乐园影院在线播放 | 国内精品自在自线视频在线观 | 免费的电影天堂手机在线观看 | 欧美一区二区三区视频在线 | 国产在线精品国自产在线 | 国产全部视频在线播放 | 国产午夜亚洲精品不卡免下载 | 精品国产福利片在线观看 | 亚洲国产精品91 | 日韩精品欧美一区喷 | 日本免费在线观看视频 | 一区国产二区亚洲三区另类 | 日韩欧美一区一本到国产 | 在线中文字幕不卡视频 | 亚洲高清在线观 | 国产午夜福 | 日本高清中文字幕高清在线 | 免费看成年视频在线入口完整版 | 成年福利片在线观看 | 亚洲成a人在线观看片 | 天堂mv亚洲mv在线播放9蜜 | 亚洲综合色自拍一区 | 国产系列| 国产男女 |