老司机夜插-理伦理片-理伦片免费-理伦片免费观看-理伦片免费看-理伦日韩-理论福利片-理论片第一页-理论片电影-理论片理论

金喜正规买球

logo DevExpress WinForm中文手冊

數據和屬性綁定


立即下載DevExpress WinForms

根據您綁定的屬性,有三種可能的情況:

 常規綁定——ViewModel屬性綁定到任何不可編輯的View元素的屬性。由于元素不可編輯,因此不需要將更新通知發送回綁定屬性(單向綁定)。

 數據綁定——Model屬性(數據字段)綁定到編輯器屬性,如果用戶可以更改編輯器值,則需要更新綁定屬性(雙向綁定)。

屬性依賴性——綁定同一個ViewModel的兩個屬性。

常規綁定

 如果需要將數據從一個屬性傳遞到另一個ViewModel的屬性,您可以使用標準的數據綁定API,或者推薦使用DevExpress MvvmContext.SetBinding方法。

 例如,視圖有一個沒有文本的,ViewModel有一個可綁定的字符串“LabelText”屬性,使用以下任何一種方法將屬性值傳遞給此Label。

form

C#:

//ViewModel code
[POCOViewModel()]
public class Form1ViewModel {
public Form1ViewModel() {
LabelText = "Value stored in ViewModel";
}
public virtual string LabelText { get; set; }
}

//View code
//option #1 (recommended): SetBinding method
var fluent = mvvmContext1.OfType<Form1ViewModel>();
fluent.SetBinding(labelControl1, l => l.Text, x=>x.LabelText);
//option #2: DataBindings
Form1ViewModel viewModel = mvvmContext1.GetViewModel<Form1ViewModel>();
labelControl1.DataBindings.Add("Text", viewModel, "LabelText");

VB.NET:

'ViewModel code
<POCOViewModel()>
Public Class Form1ViewModel
Public Sub New()
LabelText = "Value stored in ViewModel"
End Sub
Public Overridable Property LabelText() As String
End Class

'View code
'option #1 (recommended): SetBinding method
Dim fluent = mvvmContext1.OfType(Of Form1ViewModel)()
fluent.SetBinding(labelControl1, Function(l) l.Text, Function(x) x.LabelText)
'option #2: DataBindings
Dim viewModel As Form1ViewModel = mvvmContext1.GetViewModel(Of Form1ViewModel)()
labelControl1.DataBindings.Add("Text", viewModel, "LabelText")

提示:如果需要將編輯器綁定到屬性,并選擇特定的更新模式,請使用標準數據綁定而不是SetBinding方法(請參閱數據綁定部分)。

POCO視圖模型中的更新通知

如果綁定屬性的值可以更改,那么將此更改通知相關屬性非常重要,為此向相關屬性發送更新通知。如果使用的是POCO ViewModels那么 DevExpress框架可以發送這些通知。

 在MVVM應用程序中,每個視圖都有一個相關的ViewModel。當使用DevExpress MVVM框架時,您應該為每個視圖添加一個MvvmContext組件,并將該組件指向與該視圖相關的ViewModel,我們建議在設計時通過組件的智能標簽菜單來完成這個操作。

mvvm


您還可以在代碼中使用ViewModelType屬性來完成此操作。

C#:

mvvmContext.ViewModelType = typeof(ViewModel);

VB.NET:

mvvmContext.ViewModelType = GetType(ViewModel)

 框架將分配給MvvmContext組件的每個ViewModel視為POCO (Plain Old CRL Object) ViewModel,POCO視圖模型有許多命名和語法約定,如果您遵循它們,框架就會預測您想要做什么并相應地采取行動。例如,更新通知自動發送到(從)“正確”聲明的屬性。

 創建一個 public virtual auto-implemented屬性,來允許框架向該屬性發送更新通知,還可以將屬性設置器聲明為protected。

C#:

public virtual string Name { get; set; }
public virtual int ID { get; protected set; }

VB.NET:

Public Overridable Property Name() As String
Public Overridable Property ID() As Integer
Get
Return _privateID
End Get
Protected Set(ByVal value As Integer)
_privateID = value
End Set
End Property

提示:框架會忽略帶有支持字段的屬性,為了能夠綁定這些屬性,可以用DevExpress.Mvvm.DataAnnotations.BindableProperty屬性來修飾它們。

C#:

using DevExpress.Mvvm.DataAnnotations;
//. . .
string name;
[BindableProperty]
public virtual string Name {
get { return name; }
set { name = value; }
}

VB.NET:

Imports DevExpress.Mvvm.DataAnnotations
'. . .
Private name_field As String
<BindableProperty>
Public Overridable Property Name() As String
Get
Return name_field
End Get
Set(ByVal value As String)
name_field = value
End Set
End Property

如果希望在每次更新屬性時調用特定的方法,請在同一屬性中指定該方法的名稱。

C#:

[BindableProperty(OnPropertyChangedMethodName= "OnLookUpEdit1ValueChanged")]
public virtual string Name {
// ...
}

VB.NET:

<BindableProperty(OnPropertyChangedMethodName:= "OnLookUpEdit1ValueChanged")>
Public Overridable ReadOnly Property Name() As String
' ...
End Property

 在Bindable Properties演示中,一個Label顯示了TextEdit編輯器的值。TextEdit被綁定到自動實現的虛擬Text屬性(存儲原始編輯器值),Label被綁定到Title(存儲格式化的“Text”值)。

 由于“Text”屬性遵循POCO命名約定,所以TextEdit-to-Text綁定是雙向的:當ViewModel屬性改變時,編輯器更新其值,當用戶修改編輯器文本時,ViewModel屬性更新其值。Label-to-Title綁定是單向的,因為“Title”屬性沒有公共集方法。在這個設置中,我們不需要對“Title”進行雙向綁定,因為用戶不能更改Label文本。

DevExpress VCL圖表控件

運行演示

C#:

//View code
var fluent = mvvmContext.OfType<ViewModel>();
fluent.SetBinding(editor, ed => ed.EditValue, x => x.Text);
fluent.SetBinding(label, lbl => lbl.Text, x => x.Title);

//ViewModel code
public class ViewModel {
public virtual string Text { get; set; }
public string Title {
get {
if(Text == null)
return "Title: (Null)";
if(Text.Length == 0)
return "Title: (Empty)";
if(string.IsNullOrWhiteSpace(Text))
return "Title: (Whitespace)";
return "Title: " + Text;
}
}
}

VB.NET:

'View code
Dim fluent = mvvmContext.OfType(Of ViewModel)()
fluent.SetBinding(editor, Function(ed) ed.EditValue, Function(x) x.Text)
fluent.SetBinding(label, Function(lbl) lbl.Text, Function(x) x.Title)

'ViewModel code
Public Class ViewModel
Public Overridable Property Text() As String
Public ReadOnly Property Title() As String
Get
If Text Is Nothing Then
Return "Title: (Null)"
End If
If Text.Length = 0 Then
Return "Title: (Empty)"
End If
If String.IsNullOrWhiteSpace(Text) Then
Return "Title: (Whitespace)"
End If
Return "Title: " & Text
End Get
End Property
End Class

注意:上面的代碼演示了“Title”和“Text”屬性之間的區別,但并不完整,demo模塊還使用屬性依賴來在“Text”發生變化時更新“Title”,運行演示可以查看完整的代碼。

綁定嵌套和非poco視圖模型的屬性

 如果您需要綁定一個嵌套的ViewModel屬性,使用DevExpress.Mvvm.POCO.ViewModelSource.Create方法來創建這個嵌套ViewModel的實例,您可以通過 parent ViewModel訪問它,視圖綁定語法使用相同的SetBinding方法。

運行演示

C#:

//Nested ViewModel
public class NestedViewModel {
public virtual string Text { get; set; }
}

//Parent ViewModel
public class ViewModelWithChild {
public ViewModelWithChild() {
Child = ViewModelSource.Create<NestedViewModel>();
}
public NestedViewModel Child {
get;
private set;
}
}

//View code
var fluent = mvvmContext.OfType<ViewModelWithChild>();
fluent.SetBinding(editor, ed => ed.EditValue, x => x.Child.Text);

VB.NET:

'Nested ViewModel
Public Class NestedViewModel
Public Overridable Property Text() As String
End Class

'Parent ViewModel
Public Class ViewModelWithChild
Public Sub New()
Child = ViewModelSource.Create(Of NestedViewModel)()
End Sub
Private privateChild As NestedViewModel
Public Property Child() As NestedViewModel
Get
Return privateChild
End Get
Private Set(ByVal value As NestedViewModel)
privateChild = value
End Set
End Property
End Class

'View code
Dim fluent = mvvmContext.OfType(Of ViewModelWithChild)()
fluent.SetBinding(editor, Function(ed) ed.EditValue, Function(x) x.Child.Text)

 如果不使用POCO模型,則框架不會自動發送更新通知。要在這種情況下發送通知,實現接口或創建-PropertyName-Changed事件,注意不能使用mvvmContext.ViewModelType屬性,您應該調用mvvmContext.SetViewModel方法將ViewModel實例傳遞給組件。

運行演示

C#:

//ViewModel code
public class ObjectWithTextAndTitle {
string textCore;

public string Text {
get { return textCore; }
set {
if(textCore == value) return;
textCore = value;
OnTextChanged();
}
}
protected virtual void OnTextChanged() {
RaiseTextChanged();
}
protected void RaiseTextChanged() {
var handler = TextChanged;
if(handler != null) handler(this, EventArgs.Empty);
}
public event EventHandler TextChanged;
}

//View code
mvvmContext.SetViewModel(typeof(ObjectWithTextAndTitle), viewModelInstance);
var fluent = mvvmContext.OfType<ObjectWithTextAndTitle>();
fluent.SetBinding(editor, ed => ed.EditValue, x => x.Text);

VB.NET:

'ViewModel code
Public Class ObjectWithTextAndTitle
Private textCore As String

Public Property Text() As String
Get
Return textCore
End Get
Set(ByVal value As String)
If textCore = value Then
Return
End If
textCore = value
OnTextChanged()
End Set
End Property
Protected Overridable Sub OnTextChanged()
RaiseTextChanged()
End Sub
Protected Sub RaiseTextChanged()
Dim handler = TextChangedEvent
If handler IsNot Nothing Then
handler(Me, EventArgs.Empty)
End If
End Sub
Public Event TextChanged As EventHandler
End Class

'View code
mvvmContext.SetViewModel(GetType(ObjectWithTextAndTitle), viewModelInstance)
Dim fluent = mvvmContext.OfType(Of ObjectWithTextAndTitle)()
fluent.SetBinding(editor, Function(ed) ed.EditValue, Function(x) x.Text)

數據綁定

 要將編輯器綁定到Model屬性,請將 添加到View并使用標準的數據綁定API,可選的參數允許您指定屬性是否在編輯器值更改時更新其值,以及(如果是)是應該立即發生還是在驗證編輯器時發生。

C#:

editor.DataBindings.Add(...);

VB.NET:

editor.DataBindings.Add(...)

 實體屬性綁定演示定義了一個自定義Entity類,此類的實例用作數據記錄并具有ID和Text字段,兩個數據字段都綁定到編輯器,并且BindingSource組件存儲活動Entity對象。

C#:

//View
mvvmContext.ViewModelType = typeof(ViewModel);
var fluentApi = mvvmContext.OfType<ViewModel>();
// Create a BindingSource and populate it with a data object.
//When a user modifies this object, the "Update" method is called
BindingSource entityBindingSource = new BindingSource();
entityBindingSource.DataSource = typeof(Entity);
fluentApi.SetObjectDataSourceBinding(entityBindingSource, x => x.Entity, x => x.Update());
// Data Bindings
idEditor.DataBindings.Add(
new Binding("EditValue", entityBindingSource, "ID"));
textEditor.DataBindings.Add(
new Binding("EditValue", entityBindingSource, "Text", true, DataSourceUpdateMode.OnPropertyChanged));

//ViewModel
public class ViewModel {
//...
public virtual Entity Entity {
get;
set;
}
//...
}

//Model
public class Entity {
public Entity(int id) {
this.ID = id;
this.Text = "Entity " + id.ToString();
}
public int ID { get; private set; }
public string Text { get; set; }
}

VB.NET:

'View
mvvmContext.ViewModelType = GetType(ViewModel)
Dim fluentApi = mvvmContext.OfType(Of ViewModel)()
' Create a BindingSource and populate it with a data object.
'When a user modifies this object, the "Update" method is called
Dim entityBindingSource As New BindingSource()
entityBindingSource.DataSource = GetType(Entity)
fluentApi.SetObjectDataSourceBinding(entityBindingSource, Function(x) x.Entity, Function(x) x.Update())
' Data Bindings
idEditor.DataBindings.Add(New Binding("EditValue", entityBindingSource, "ID"))
textEditor.DataBindings.Add(New Binding("EditValue", entityBindingSource, "Text", True, DataSourceUpdateMode.OnPropertyChanged))

'ViewModel
Public Class ViewModel
'...
Public Overridable Property Entity() As Entity
'...
End Class

'Model
Public Class Entity
Public Sub New(ByVal id As Integer)
Me.ID = id
Me.Text = "Entity " & id.ToString()
End Sub
Private privateID As Integer
Public Property ID() As Integer
Get
Return privateID
End Get
Private Set(ByVal value As Integer)
privateID = value
End Set
End Property
Public Property Text() As String
End Class

您也可以使用SetBinding方法。

C#:

fluent.SetBinding(idEditor, l => l.EditValue, x => x.Entity.ID);
fluent.SetBinding(textEditor, l => l.EditValue, x => x.Entity.Text);

VB.NET:

fluent.SetBinding(idEditor, Function(te) te.EditValue, Function(dl) dl.Entity.ID)
fluent.SetBinding(textEditor, Function(te) te.EditValue, Function(dl) dl.Entity.Text)

 但在這種情況下,就失去了設置必需的DataSourceUpdateMode的選項,該選項允許您防止過多的更新通知。

屬性依賴性

 屬性依賴關系是來自同一ViewModel的兩個屬性之間的關系,當一個屬性改變時則另一個屬性會更新它的值。

在MVVM Best Practices演示中,多個模塊演示了以下設置:

  1. 將兩個 TextEdit 控件綁定到 ViewModel “Operand1”和“Operand 2”屬性。
  2. 當用戶更改 TextEdit 值時,操作數屬性會刷新其值。
  3. 當操作數屬性更改時,它們會更新數字“結果”屬性(依賴項#1)。
  4. “Result”屬性更新字符串“ResultText”屬性(依賴項#2)。
屬性

對于使用示例UI的每個演示模塊,將視圖元素綁定到ViewModel屬性的代碼都是相同的。

C#:

mvvmContext.ViewModelType = typeof(MultViewModel);
var fluentAPI = mvvmContext.OfType<MultViewModel>();
fluentAPI.SetBinding(editor1, e => e.EditValue, x => x.Operand1);
fluentAPI.SetBinding(editor2, e => e.EditValue, x => x.Operand2);
fluentAPI.SetBinding(resultLabel, l => l.Text, x => x.ResultText);

VB.NET:

mvvmContext.ViewModelType = GetType(MultViewModel)
Dim fluentAPI = mvvmContext.OfType(Of MultViewModel)()
fluentAPI.SetBinding(editor1, Sub(e) e.EditValue, Sub(x) x.Operand1)
fluentAPI.SetBinding(editor2, Sub(e) e.EditValue, Sub(x) x.Operand2)
fluentAPI.SetBinding(resultLabel, Sub(l) l.Text, Sub(x) x.ResultText)

然而,每個模塊中的屬性依賴聲明都不同。

OnPropertyChanged方法

 在 POCO ViewModel 中,您可以聲明OnXChanged其中 X 是屬性名稱的方法,當相關屬性的值發生變化時,框架會調用這些方法。

運行演示

C#:

public class MultViewModel {
public virtual int Operand1 { get; set; }
public virtual int Operand2 { get; set; }
public virtual int Result { get; set; }
public virtual string ResultText { get; set; }

protected void OnOperand1Changed() {
UpdateResult();
}
protected void OnOperand2Changed() {
UpdateResult();
}
protected void OnResultChanged() {
UpdateResultText();
}
void UpdateResult() {
Result = Operand1 * Operand2;
}
void UpdateResultText() {
ResultText = string.Format("The result is: {0:n0}", Result);
}
}

VB.NET:

Public Class MultViewModel
Public Overridable Property Operand1() As Integer
Public Overridable Property Operand2() As Integer
Public Overridable Property Result() As Integer
Public Overridable Property ResultText() As String

Protected Sub OnOperand1Changed()
UpdateResult()
End Sub
Protected Sub OnOperand2Changed()
UpdateResult()
End Sub
Protected Sub OnResultChanged()
UpdateResultText()
End Sub
Private Sub UpdateResult()
Result = Operand1 * Operand2
End Sub
Private Sub UpdateResultText()
ResultText = String.Format("The result is: {0:n0}", Result)
End Sub
End Class
自定義更新方法

 如果您的更新方法未調用“On…Changed”,請使用該DevExpress.Mvvm.DataAnnotations.BindableProperty屬性告訴框架,當屬性值更改時應調用此方法。在下面的代碼示例中,DevExpress.Mvvm.POCO.RaisePropertyChanged是一個 DevExpress 擴展方法,它將更新通知發送到依賴屬性。

運行演示

C#:

public class SumViewModel {
[BindableProperty(OnPropertyChangedMethodName = "NotifyResultAndResultTextChanged")]
public virtual int Operand1 { get; set; }
[BindableProperty(OnPropertyChangedMethodName = "NotifyResultAndResultTextChanged")]
public virtual int Operand2 { get; set; }
public int Result {
get { return Operand1 + Operand2; }
}
public string ResultText {
get { return string.Format("The result is: {0:n0}", Result); }
}
protected void NotifyResultAndResultTextChanged() {
this.RaisePropertyChanged(x => x.Result);
this.RaisePropertyChanged(x => x.ResultText);
}
}

VB.NET:

Public Class SumViewModel
<BindableProperty(OnPropertyChangedMethodName := "NotifyResultAndResultTextChanged")>
Public Overridable Property Operand1() As Integer
<BindableProperty(OnPropertyChangedMethodName := "NotifyResultAndResultTextChanged")>
Public Overridable Property Operand2() As Integer
Public ReadOnly Property Result() As Integer
Get
Return Operand1 + Operand2
End Get
End Property
Public ReadOnly Property ResultText() As String
Get
Return String.Format("The result is: {0:n0}", Result)
End Get
End Property
Protected Sub NotifyResultAndResultTextChanged()
Me.RaisePropertyChanged(Function(x) x.Result)
Me.RaisePropertyChanged(Function(x) x.ResultText)
End Sub
End Class
屬性依賴

 使用 attribute 標記依賴屬性DevExpress.Mvvm.DataAnnotations.DependsOnProperties,請注意與前面的示例不同,下面的代碼僅使用一個依賴項:“ResultText”依賴于兩個“Operand”屬性,您無法使用此屬性創建鏈接依賴項。

C#:

public class MultViewModelEx {
public virtual int Operand1 { get; set; }
public virtual int Operand2 { get; set; }

[DependsOnProperties("Operand1", "Operand2")]
public string ResultText {
get { return string.Format("The result is: {0:n0}", Operand1 * Operand2); }
}
}

VB.NET:

Public Class MultViewModelEx
Public Overridable Property Operand1() As Integer
Public Overridable Property Operand2() As Integer

<DependsOnProperties("Operand1", "Operand2")>
Public ReadOnly Property ResultText() As String
Get
Return String.Format("The result is: {0:n0}", Operand1 * Operand2)
End Get
End Property
End Class

元數據類

 在此方法中,創建自定義更新方法并使用單獨的元數據類將屬性與這些方法鏈接起來。如果BindableProperty 屬性按名稱引用更新方法,則該OnPropertyChangedCall方法使用 lambda 表達式來檢索方法。當重命名自定義更新方法時,Metadata 類會顯示編譯錯誤。

C#:

//View Model code
[System.ComponentModel.DataAnnotations.MetadataType(typeof(Metadata))]
public class SumViewModel_MetaPOCO {
public virtual int Operand1 { get; set; }
public virtual int Operand2 { get; set; }
public virtual int Result { get; set; }
public string ResultText {
get { return string.Format("The result is: {0:n0}", Result); }
}
protected void NotifyResultAndResultTextChanged() {
Result = Operand1 + Operand2;
this.RaisePropertyChanged(x => x.Result);
this.RaisePropertyChanged(x => x.ResultText);
}
//Metadata class
public class Metadata : IMetadataProvider<SumViewModel_MetaPOCO> {
void IMetadataProvider<SumViewModel_MetaPOCO>.BuildMetadata(MetadataBuilder<SumViewModel_MetaPOCO> builder) {
builder.Property(x => x.Result)
.DoNotMakeBindable();
builder.Property(x => x.Operand1).
OnPropertyChangedCall(x => x.NotifyResultAndResultTextChanged());
builder.Property(x => x.Operand2).
OnPropertyChangedCall(x => x.NotifyResultAndResultTextChanged());
}
}
}

VB.NET:

<System.ComponentModel.DataAnnotations.MetadataType(GetType(Metadata))>
Public Class SumViewModel_MetaPOCO
Public Overridable Property Operand1() As Integer
Public Overridable Property Operand2() As Integer
Public Overridable Property Result() As Integer
Public ReadOnly Property ResultText() As String
Get
Return String.Format("The result is: {0:n0}", Result)
End Get
End Property
Protected Sub NotifyResultAndResultTextChanged()
Result = Operand1 + Operand2
Me.RaisePropertyChanged(Function(x) x.Result)
Me.RaisePropertyChanged(Function(x) x.ResultText)
End Sub
'Metadata class
Public Class Metadata
Implements IMetadataProvider(Of SumViewModel_MetaPOCO)

Private Sub IMetadataProviderGeneric_BuildMetadata(ByVal builder As MetadataBuilder(Of SumViewModel_MetaPOCO)) Implements IMetadataProvider(Of SumViewModel_MetaPOCO).BuildMetadata
builder.Property(Function(x) x.Result).DoNotMakeBindable()
builder.Property(Function(x) x.Operand1).OnPropertyChangedCall(Function(x) x.NotifyResultAndResultTextChanged())
builder.Property(Function(x) x.Operand2).OnPropertyChangedCall(Function(x) x.NotifyResultAndResultTextChanged())
End Sub
End Class
End Class

集合綁定

要使用數據源記錄填充多項目控件,請使用方法SetItemsSourceBinding。

C#:

var fluentApi = mvvmContext1.OfType<ViewModelClass>();
fluentApi.SetItemsSourceBinding(
Target
ItemSelector,
SourceSelector,
MatchExpression,
CreateExpression,
DisposeExpression,
ChangeExpression
);

VB.NET:

Dim fluentApi = mvvmContext1.OfType(Of ViewModelClass)()
fluentApi.SetItemsSourceBinding(Target ItemSelector, SourceSelector, MatchExpression, CreateExpression, DisposeExpression, ChangeExpression)

Target——需要填充的目標UI元素。

項目選擇器——一個表達式,用于檢索應該從數據源填充的UI元素的項目集合。

源選擇器——一個表達式,用于定位數據源,其項應用于填充目標。

 匹配表達式——將數據源項與目標子項進行比較的表達式。當更改或刪除數據源記錄時,框架將運行此表達式來確定是否應該更新相應的Target集合項。

創建表達式——當出現新的數據源記錄時,用于創建新的Target集合項的表達式。

處理表達式——當Target集合項的相關數據源記錄被刪除時,該表達式將對其進行處理。

更改表達式——指定當匹配表達式得出的目標集合項與數據源記錄不同時,如何更新目標集合項。

MVVM最佳實踐演示中,下面的代碼用自定義Entity類的對象填充一個列表框,SetBinding方法將編輯器的SelectedItem屬性與檢索相應Entity對象的ViewModel SelectedEntity屬性綁定在一起。

C#:

//View code
mvvmContext.ViewModelType = typeof(ViewModel);
var fluentApi = mvvmContext.OfType<ViewModel>();
fluentApi.SetItemsSourceBinding(
listBox,
lb => lb.Items,
x => x.Entities,
(item, entity) => object.Equals(item.Value, entity),
entity => new ImageListBoxItem(entity),
null,
(item, entity) => {
((ImageListBoxItem)item).Description = entity.Text;
}
);
fluentApi.SetBinding(listBox, lb => lb.SelectedValue, x => x.SelectedEntity);

//ViewModel code
public class ViewModel {
public virtual Entity SelectedEntity { get; set; }
public virtual ObservableCollection<Entity> Entities { get; set;}
protected void OnSelectedEntityChanged() {
//"Remove" is a custom ViewModel method that deletes a selected entity
this.RaiseCanExecuteChanged(x => x.Remove());
}
protected void OnEntitiesChanged() {
SelectedEntity = Entities.FirstOrDefault();
}
}

//Model code
public class Entity {
public Entity(int id) {
this.ID = id;
this.Text = "Entity " + id.ToString();
}
public int ID { get; private set; }
public string Text { get; set; }
}

VB.NET:

'View code
mvvmContext.ViewModelType = GetType(ViewModel)
Dim fluentApi = mvvmContext.OfType(Of ViewModel)()
fluentApi.SetItemsSourceBinding(
listBox,
Function(lb) lb.Items,
Function(x) x.Entities,
Function(item, entity) Object.Equals(item.Value, entity),
Function(entity) New ImageListBoxItem(entity),
Nothing,
Function(item, entity) CType(item, ImageListBoxItem).Description = entity.Text
)
fluentApi.SetBinding(listBox, Function(lb) lb.SelectedValue, Function(x) x.SelectedEntity)

'ViewModel code
Public Class ViewModel
Public Overridable Property SelectedEntity() As Entity
Public Overridable Property Entities() As ObservableCollection(Of Entity)
Protected Sub OnSelectedEntityChanged()
'"Remove" is a custom ViewModel method that deletes a selected entity
Me.RaiseCanExecuteChanged(Function(x) x.Remove())
End Sub
Protected Sub OnEntitiesChanged()
SelectedEntity = Entities.FirstOrDefault()
End Sub
End Class

'Model code
Public Class Entity
Public Sub New(ByVal id As Integer)
Me.ID = id
Me.Text = "Entity " & id.ToString()
End Sub
Private privateID As Integer
Public Property ID() As Integer
Get
Return privateID
End Get
Private Set(ByVal value As Integer)
privateID = value
End Set
End Property
Public Property Text() As String
End Class

觸發器

觸發器允許您在 ViewModel 屬性更改時修改 UI(視圖)。在DevExpress 演示中,一個復選框綁定到 ViewModel“IsActive”屬性,當此屬性的值更改時,觸發器會更改 UI 元素(標簽)的背景顏色。

C#:

//ViewModel code
public class ViewModel {
public virtual bool IsActive { get; set; }
}

//ViewModel code
var fluent = mvvmContext.OfType<ViewModel>();
fluent.SetBinding(checkEdit, c => c.Checked, x => x.IsActive);
fluent.SetTrigger(x => x.IsActive, (active) => {
if(active)
label.Appearance.BackColor = Color.LightPink;
else
label.Appearance.BackColor = Color.Empty;
});

VB.NET:

'ViewModel code
Public Class ViewModel
Public Overridable Property IsActive() As Boolean
End Class

'ViewModel code
Private fluent = mvvmContext.OfType(Of ViewModel)()
fluent.SetBinding(checkEdit, Function(c) c.Checked, Function(x) x.IsActive)
fluent.SetTrigger(Function(x) x.IsActive, Sub(active)
If active Then
label.Appearance.BackColor = Color.LightPink
Else
label.Appearance.BackColor = Color.Empty
End If
End Sub)
掃碼咨詢


添加微信 立即咨詢

電話咨詢

客服熱線
023-68661681

TOP
欧美日韩国产亚洲一区二区三区 | 日日摸夜夜添夜夜添A片公司 | 日韩高清一区二区三区不卡 | 国产亚洲色婷婷久久精品99 | 亚洲免费国产在线日韩 | 色欲AV久久综合人妻无码 | 国产在线一区观看 | 韩国三级视频网站 | 琪琪电影福利网2017 | 三级韩国2019在线现看 | 米奇第四色色情 | 久综合网| 黄网站色视频大全免费观看 | 四虎影视完整版免费观看 | 免费观看WWW成人A片 | 国产成久久免费精品AV片天堂 | 亚洲视频国产在线精品 | 国产日韩欧美另类重口在线观看 | 国精产品一区一区三区免费视频 | 六月丁香在线播放 | 五月天婷婷视频在线观看 | 国内精品久久久久久 | 天天躁日日躁成人字幕aⅴ 天天躁日日躁aaaaxxxx | 91情国产l精品国产亚洲区 | 久久精品AV一区二区无码 | 在线亚洲天堂 | 日本无码WWW在线视频观看 | 亚洲一区二区免费视频 | 波多野结衣在线看片 | 91网站免费观看 | www欧美视频| 亚洲成人午夜影院 | 大香线蕉视频伊人99 | 在线毛片一区二区不卡视频 | 日日摸人人看97人人澡 | 伦理电影善良的嫂子3观看 伦理电影播放伦理电影 | 真人作爱视频免费网站 | 成人污污污WWW网站免费直播 | 伦理片a在线线2 | 日本三级影院 | 中字幕久久久人妻熟女 | 国产精口品美女乱子伦高潮 | 一卡二卡3卡4卡免费 | 狠狠骚| 亚洲精品卡一卡2卡3卡4卡 | 天天躁日日躁狼狼超碰97 | 中文乱码字幕无线观看2024 | 国产婷婷色一区二区三区在线 | 一个人看的视频www在线观看免费 | 99蜜桃臀久久久欧美精品网站 | 被公侵犯肉体中文字幕电影 | 欧美人人爽| 中文字幕乱码在线播放 | 麻豆一区| 中文字幕AV久久一区二区 | 四房开心网 | 精品国产污污免费网站 | 2024四虎永久在线观看 | 色爱综合区 | 很黄很肉很刺激的小说在线阅读 | 久久久九九精品国产毛片A片 | 欧美在线视频一区在线观看 | 日韩精品a在线视频 | 狼人社区 | 中国一级毛片在线观看 | 99国模沟沟茂密的黑森林 | 中文字幕 日韩 人妻 无码 | 小妖精又紧又湿高潮H视频69 | 久久久午夜精品 | 一本到一本到高清视频在线观看 | 91国内在线视频 | chinese国产一区二区 | 色婷婷在线播放 | 日韩一卡2卡3卡4卡乱码网站导航 | 丁香人妻| 久久久这里只有免费精品2018 | 黄网13| www免费视频| 中文一区在线观看 | 92看看福利1000集合集免费 | 国产国语一级a毛片高清视频 | 国产免费久久精品久久久 | 97视频免费在线观看 | 色涩网 | 国产69精品久久久久久人妻精品 | 色偷偷免费视频 | 日本aa视频 | 日本成人在线免费观看 | 人人干97| 亚洲AV色香蕉一区二区三区 | 性一交一乱一欲A片 | 久久国产精品只做精品 | 午夜性福利视频 | 永久免费观看国产裸体美女 | 被工地工人轮着上雯雯 | 亚洲性无码A片在线观看尖叫 | 日日鲁鲁鲁夜夜爽爽狠狠视频97 | 69国产成人综合久久精 | 成年在线观看网站免费 | 国产一区二区精品尤物 | 九九视频免费精品视频免费 | 亚洲中文字幕琪琪在线 | 国自产拍偷拍精品啪啪一区二区 | 亚洲欧洲日韩另类自拍 | 五月天婷婷综合网 | 国产在线一区二区 | 成年在线影视免费观看 | 第四色婷婷基地 | 色色色网| 狼人综合狼人综合 | 99久久无码一区人妻A片麻豆 | 精品无码国产AV一区二区三区 | 精品三级内地国产在线观看 | 国产一级视频在线 | 日本久久久久久久做爰片日本 | 久久99国产精品成人欧美 | 人妻丰满精品一区二区A片 人妻换人妻AA视频 人妻激情综合久久久久蜜桃 | 韩日精品视频 | 日韩欧美激情 | 婷婷激情在线视频 | 少妇伦子伦精品无码 | 日本爽爽爽爽爽爽在线观看免 | 狼人社区 | 日韩亚洲精品无码一区二区 | 九九色影院 | 色大片| 午夜福利视频合集4000手机 | 羞羞影院男女爽爽影院尤物 | 精品国产一区二区三区四区精华液 | 在线播放周妍希国产精品 | 韩国理伦片在线观看影片 | 最近新中文字幕大全高清 | 丁香花五月婷婷开心 | 国内精品一区无码中文在线 | 小视频免费观看在线 | 99精品全国免费7观看视频 | 久久这里的只有是精品23 | 欧美人与动牲交免费观看视频 | 精产国品一区二区三产区 | 亚洲最大的成人网站 | 精品免费tv久久久久久久 | 免费一级特黄特色大片在线观看 | 日本一区二区三区视频在线观看 | 亚洲综合网国产精品一区 | 91香蕉人成app | 伴郎粗大的内捧猛烈进出视频观看 | 啊灬啊别停灬用力深视频 | 天天爱天天做天天干 | 丝瓜app下载网址进入安卓免费 | 国产亚洲情侣久久精品 | 亚洲天堂免费在线 | 天天性综合 | 亚洲国产中文在线视频免费 | 亚洲精品天堂在线观看 | 99精品在线免费 | 中文字幕无码无卡视频 | 高清无码日本一区二区 | 91在线免费观看网站 | 国产日韩视频一区 | 黄色在线视频播放 | 丁香色狠狠色综合久久小说 | 中文乱码字慕人妻熟女人妻 | 久久精品人妻一区二区蜜桃 | 国产AV国片偷人妻麻豆 | 日日干夜夜爱 | 最近中文字幕免费完整版2019 | 娇喘呻吟欲仙欲死的娇妻 | 国产亚洲999精品AA片 | 国产人妻高清国产拍精品 | 亚洲A片无码一区二区三区在线 | 美日韩在线 | 伦理片韩国免观看 | 亚洲午夜视频在线观看 | 伊人久久亚洲精品一区 | 日韩色情免费高速视频 | 五月婷婷综合网 | 四虎免费在线观看 | 欧美第一福利 | 欧美精品videosex性欧美 | 真人做爰直播 试看 | 中国大陆一级毛片免费 | 成年人网站黄 | 黄色激情网址 | 风雨送春归免费观看 | 日韩精品视频福利资源站 | 欧美中文字幕一区 | 经典国产乱子伦精品视频 | 欧美日韩一二三 | 天天综合网色中文字幕 | 中国xxxx18免费 | 99精品在线免费 | 成人黄网站A片免费观看 | 这里只有精品6 | 亚洲精品午夜视频 | 日韩三级中文 | 欧美video巨大粗暴乌克兰 | 欧美另类老女人 | 免费A级毛片无码鲁大师 | 精品国产一区二区三区久久影院 | 人妻少妇被粗大爽.9797PW | 国产精品99久久免费观看 | 欧美日韩精品一区二区在线播放 | 又色又爽的无遮挡免费网址 | 毛片网站在线看 | 国产精品AV无码免费播放 | 欧美z000zxxxx| 国产精品久久欧美一区 | 欧美性猛片AAAAAAA | 兰桂坊人成社区亚洲 | a级v片| 泷川雅美的不雅视频 | 成人免费播放视频20242024 | 国产福利视频情侣视频 | 国产福利萌白酱在线观看网站 | 精品国产免费第一区二区 | 拔插拔插永久免费 | 精品国产网 | 影音先锋男人资源 站 | 朋友的人妻的滋味BD中文 | 天天色网站 | 色综合亚洲色综合网站 | 妖精视频一区二区三区 | 四虎最新免费网址 | 丰满五十路熟女正在播放 | 日本高清一卡二卡三卡四卡无卡 | 成人在线免费视频 | 国产精品乱码色情一区二区视频 | 水蜜桃成视频人在线播放 | 香蕉人人超人人超碰超国产 | 2022国产精品自在线拍国产 | 秋霞韩国伦理电线看 | 欧美黄色大片免费观看 | 亚洲阿v天堂在线 | 亚洲巨乳自拍在线视频 | av免费无码天堂在线 | 国产麻豆久久 | 日本高清成人 | 亚洲精品高潮久久久久久日本 | 欧美妇乱xxxxx视频 | 四色777| 亚洲精品网站日本xxxxxxx | 大陆老熟女嗷嗷叫AV在线 | 97碰碰碰免费公开在线视频 | 国产亚洲精品福利 | 久久97精品久久久久久久看片 | 精产国品一区二区三产区 | 日韩视频高清免费看 | 日本人×体xx艺术 | 亚洲精品综合 | 国产精品成久久久久三级 | www狠狠干 | 日本高清免费观看高清电影 | 国产最新电影 | 亚洲欧美日本国产高清 | 精品亚洲日韩国产一二三区 | 性饥渴的漂亮女邻居BD视频 | 在线小视频国产 | 亚洲精品国产国语 | 日本高清二三四本2021第九页 | 亲胸吻胸添奶头GIF动态图免费 | 国产成人精品视频一区 | 亚洲无砖无线码 | 四库影院884TT永久地址 | 人民的名义 未删减版 | 女人高潮视频 | 色婷婷六月亚洲婷婷丁香 | 大片成人版| 在线色| 韩国视频在线观看高h | 天美MD豆传媒一二三区进 | 天天碰夜夜操 | 愉拍自拍一区首页 | 亚洲一区二区三区四区五区六区 | 男女边摸边吃奶边做爰动漫 | 日韩a片| 国产色XX群视频射精 | 韩国三级在线高速影院 | 亚洲精品久久精品一区二区 | 亚洲国产精品成人无码A片软件 | 国产成人精品综合 | 日日摸夜夜添夜夜添高潮免费A片 | 人与嘼在线A片观看免费 | 一级高清毛片免费a级高清毛片 | 欧美黄色小说 | 国产精品XXXXX免费A片 | 污污又黄又爽免费的网站 | 99久久精品免费国产一区二区三区 | 88xx成人永久免费观看 | 婷婷色九月综合激情丁香 | 国产亚洲精品久久久999蜜臀 | 色欲精品国产一区二区三区 | 国产一卡 二卡三卡四卡无卡乱码视频 | 婷婷在线免费观看 | 手机在线毛片免费播放 | 麻豆传煤2021精品 | 六月激情综合 | 精东视频影视传媒制作精品免费版 | 制服丝袜 天堂 | 福利在线国产 | 丁香婷婷色 | 欧美中文一区 | 亚洲人成在线播放无码 | 欧美色图天堂网 | 性色网站| 影音先锋久草 | 天天色影网| 久久三级毛片 | 99久久无码一区人妻A片蜜臀 | 黄色在线观看视频 | 流氓软件app免费下载大全下载 | 青草国产超碰人人添人人碱 | 青青青国产精品手机在线观看 | 一个人在线视频免费观看www | 国产无线乱码一区二三区 | 999视频在线观看 | 在线视频观看国产 | 欧美白虎逼| AV国産精品毛片一区二区小说 | 欧美三级黄色大片 | 在线看黄色的网站 | 2024最新国产不卡a国内2024 | 少妇系列之白嫩人妻 | 91影视永久福利免费观看 | 啊灬啊灬啊灬快灬A片免费直拍 | 精品欧美中国福利第一导航 | 亚洲国产成人久久一区久久 | 国内一本到不卡在线观看 | 五月婷六月婷婷 | 伦理片秋霞免费影院 | 无码乱人伦一区二区亚洲 | 2024四虎影视最新在线 | 在线午夜福利视频免费 | zzz动漫网在线观看 zzzzxxxx日本 | 亚洲天堂久久精品成人 | 欧美疯狂xxxx乱大交视频 | 亚洲色图欧美激情 | 校花被扒衣吸乳羞羞漫画 | 24小时更新视频在线观看免费 | 国产福利91精品一区二区 | 中文字幕一区中文亚洲 | 欧美牲| 久久99视频免费 | 亚洲.日韩.欧美另类 | 亚洲国产欧美在线观看 | 性吧有你cc | 国产精品AV无码毛片久久 | 在线观看网址最新电影 | 日韩精品视频免费网址 | 欧美日韩国产一区三区 | 久久久国产精品网站 | 国产亚洲精品久久无码98 | 亚洲国产午夜精品乱码 | 97视频久久久 | 亚洲 欧美 校园 春色 小说 | 两个女人互添下身爽舒服小说 | 久久亚洲精品无码A片大香大香 | XL上司带翻译不打马赛 | 天堂中文在线资源库用 | 亚洲无人区码卡二卡三卡四卡 | 国产精品原创永久在线观看 | 亚洲欧美网 | 97se亚洲综合在线天天 | 先锋影音av无码第1页 | 吉吉影音av资源站 | 久久国产精品影院 | 久久性色AV亚洲电影无码 | AV亚洲产国偷V产偷V自拍AV | 成人高清影院 | 亚洲 欧美 丝袜 制服 在线 | 国产精选自拍 | 国精品无码一区二区三区在线A片 | 欧美日韩中文字幕免费不卡 | 亚洲 欧美 清纯 校园 另类 | 伊人性伊人情综合网 | 欧美第二区 | 婷婷爱五月天 | 国产精品无码久久久久 | 欧美久久久无码精品亚洲日韩小说 | 国产美女在线一区二区三区 | 99久久久无码国产精品免费人妻 | 亚洲欧美黄 | 少妇交换做爰5 | 亚洲人成人无码.WWW石榴 | 免费看人与动人物XXXX | 毛片随便看 | 色综合中文字幕 | 国产精品视频免费视频 | 免费黄色成年网站 | 窝窝视频成人影院午夜在线 | 国产在线观看中文字幕 | 永久免费看A片无码播放器不卡 | 国产淫语对白在线 | 人人插人人爽 | 久久亚洲精品中文字幕三区 | 久久久久久久免费 | 亚洲一卡2卡3卡4卡乱码网站 | 国产精品免费拍拍1000部 | 亚洲天堂999| 国产色婷婷精品免费视频 | 久久男女 | 欧美女人的阴户毛茸茸的 | 乱码午夜-极品国产内射 | 亚洲欧美自拍另类图片色 | 日本国产精品无码一区免费看 | 国产一区日韩二区欧美三区 | 亚洲日本国产综合高清 | 波多野结衣久久精品免费播放 | 免费人成在线观看69式小视频 | 宅男噜噜噜 | 国产高潮呻吟无码精品AV | 免费播放美女一级毛片 | 国产精品爱久久久久久久小说 | 让杜雅尔丹 | 午夜精品久久久内射近拍高清 | 黄色网在线播放 | 酷狗2011正式版下载 | 日本黄色片网站 | 亚洲精品久久久一二三区 | 国产va视频| 国产av在在免费线观看美女 | 黄v网站| 一区二区三区无码高清视频 | 91精品国产色综合久久不 | 久久精品这里是免费国产 | 无人在线观看视频高清视频 | 久久天堂 | 天天干狠狠操 | 在线国产三级 | 亚洲国产精品高清在线一区 | 艳妇臀荡乳欲伦交换在线播放 | 最新露脸国产精品视频 | 国产在线永久视频 | 超级狂色而且免费又超好看 | 国产精品嫩草99AV在线 | 国产毛片一级 | 久久这里只精品99百度 | 丝瓜草莓秋葵污WWW旧版安卓 | 国产69精品久久久久人妻 | 四虎在线免费观看 | 色综合天天综合 | 韩国日本不卡高清免费视频 | 国产乱子伦农村叉叉叉 | 9900LU永久跳转| 毛片导航 | 最新版天堂中文在线 | 色偷偷AV老熟女色欲涩爱 | 成人A片一区二区三区在线观看 | 色就色 综合偷拍区欧美 | 欧美在线一区二区 | 特级精品毛片免费观看 | www.亚洲天堂网| 亚洲欧美一区二区成人片色欲AV | 亚洲午夜无码毛片AV久久京东热 | 国产电影一区二区三区 | 久久久99精品免费观看 | 国产福利午夜波多野结衣 | 又www又黄又爽啪啪网站 | 99精品无人区乱码在线观看 | 长泽雅美av | 国产三级多多影院 | 亚洲国产美女免费视频 | 天噜啦精品免费视频日本免费视频 | 日韩精品中文字幕一区二区三区 | 久久国产欧美日韩精品免费 | 色噜噜综合熟女人妻一区 | 久久婷婷五月综合色精品首页 | 日本加勒比视频在线观看 | 色一欲一性一乱一区二区三区 | 国产日韩欧美另类重口在线观看 | 国产黄色a三级三级三级 | 麻豆无人区乱码 | 色综合天天综合网 | 无码又爽又刺激视频A片涩涩 | 香港一级淫片高清视频 | 美国一级大黄香蕉片 | 亚洲午夜国产片在线观看 | 天天操天天射天天操 | 久久综合久久久 | 校园高H校草深一点H | 天天做天天爱天天大综合 | 色五月情 | 日韩精品在线观看免费 | 亚洲自偷精品视频自拍 | 国色天香精品一卡二卡三卡 | GOGO大胆国模一区二区私拍 | 国产午夜久久精品 | 国产成人无码视频一区二区三区 | 99国产亚洲精品无码成人 | 中文字幕日韩女同互慰视频 | 国产aⅴ片 | 久久精品国产99久久无毒不卡 | 樱花草视频WWW日本韩国 | 天天做夜夜做久久做狠狠 | 亚洲综合在线视频自拍 | 欧美精品黑人性xxxx | 天天干天天摸天天操 | 日本亚洲精品无码区国产电影 | 日日碰狠狠躁久久躁96AVV | 男人大JI巴做爰好爽视频 | 被群CAO的合不拢腿H两根一起 | 国产女女精品视频久热视频 | 成人亚洲区无码偷拍12P | 伊人久久精品亚洲午夜 | 91久久精品国产一区二区 | 做爰全过程免费的视频在线观看 | 影音先锋大型av资源 | 亚洲啊v | 午夜福利视频 | 中国一级特黄真人毛片 | 久久精品AV无码一区二区小说 | 国产三级小视频 | 天天操天天添 | 亚洲一区免费看 | 国产人妻人伦精品1国产盗摄 | 色欲AV在线观看国产精品 | 韩国理论片在线观看片免费 | 亚洲色无码A片一区二区麻豆 | 全部免费的毛片视频观看 | 亚洲免费高清视频 | 日本jizz在线播放 | 午夜视频一区二区三区 | 老色69久久九九精品高潮 | 色综合天天干 | 国产乱人对白A片麻豆 | 三级网站在线播放 | 五月色网站 | 快穿被各种男主强好爽H | 国产亚洲精品VA片在线播放 | 最新中文字幕在线资源 | 鲁丝一区二区三区不属 | 久久精品韩国三级 | 免费国产成人高清在线网站东京 | 天天天天夜夜夜夜爱爱爱爱 | 亚洲精品久久无码AV片银杏 | 亚洲一级免费毛片 | 澳门在线高清一级毛片 | 99精品久久精品一区二区小说 | 99久久久国产精品免费蜜臀 | 最近免费中文字幕大全高清大全10 | 真实国产精品视频国产网 | 中文字幕卡二和卡三的视频 | 97福利视频精品第一导航 | 欧美精品 在线观看 | 久久ZYZ资源站无码中文动漫 | 亚洲无砖无线码 | 国产一区二区三区国产精品 | 99色视频在线观看 | 夜夜国产亚洲视频香蕉 | 影音先锋电影资源av | 久久九九色 | 99精品成人无码A片观看 | 2022av视频 | 狠狠色丁香婷婷久久综合 | 欧美精品导航 | 欧美天堂久久 | 中文字幕一区在线观看 | 国产精品系列在线观看 | 黄色片网站免费观看 | 日本三级网 | 三级黄色片网站 | 亚洲精品一区二区绿巨人 | 宅男噜噜噜666 | 日韩色天使综合色视频 | 日本高清视频色wwwwww色 | 五十路美熟h0930 | 一起看动漫 | 国色天香AV在线观看免费 | 天天影视网网色色欲 | 亚洲午夜片 | 国产亚洲精品久久777777 | 亚洲A片一区日韩精品无码 亚洲H成年动漫在线观看不卡 | 热99久久| a级精品九九九大片免费看 a级精品国产片在线观看 | 欧美日韩亚洲区久久综合 | 春宵福利网站在线观看 | 精品一区二区三区免费毛片爱 | 波多野结衣手机视频一区 | 亚洲黄色在线观看网站 | 日韩激情成人 | 国内揄拍国产精品人妻门事件 | 久久久精品免费 | 日韩精品免费一区二区 | 美女快播第一网 | 欲妇荡岳丰满少妇岳A片 | 午夜wwww| 91精品国产一区 | 女人aaaaa片一级一毛片 | 少妇AV射精精品蜜桃专区 | 国产vs久久 | 国产电影一区二区三曲爱妃记 | 麻豆久久婷婷综合五月国产 | 少妇精品久久久一区二区三区 | 69性视频| 女人下边被添全过程A片图片 | 国产亚洲精品久久综合阿香蕉 | 中央工作组赴宜春督导锂矿开采 | 看美国毛片 | 性xxxx视频在线观看 | 五月婷婷丁香色 | 成都影院手机在线高清 | 国产成人毛片毛片久久网 | 2021久久伊人精品中文字幕有 | 2021手机日本卡一卡二新区 | 欧美成人A片免费无码毛片 欧美成人大色情大片破碎的拥抱 | 99精品视频在线观看免费 | 亚洲一区自拍高清亚洲精品 | 日韩一级视频在线观看播放 | 国产v | 国产精品久久久久久久久免费hd | swag国产精品 | 日本aa大片| 五月婷六月丁香 | 欧美特黄三级成人 | 污网站观看 | 国产精品毛片AV在线看 | 青草青青在线 | 亚洲综合狠狠 | 台湾hd性xxx| 国内夫妻自拍 | 国产精品视频一区牛牛视频 | 日本三级电影在线观看 | 六月婷婷色 | 久久国产精品99久久久久久老狼 | 欧美性猛交一区二区三区 | 日韩精品一区二区三区色欲AV | 成熟YIN荡美妞A片视频麻豆 | 亚洲乱码日产精品BD在线下载 | 亚洲欧美丝袜制服 | 久草视频在线资源 | 欧美精品video | 在线观看特色大片免费视频 | 日本最新免费二区三区 | 免费国产精品视频在线 | 午夜久久久精品 | 在线看91| 欧美巨大另类极品video | 天天操夜夜操 | 五月婷婷六月天 | 免费精品国产人妻国语色戒 | 亚洲免费a | 国产中文字幕在线视频 | 99精品免视看 | 好屌草这里只有精品 | 亚洲人成网站999久久久综合 | 忘忧草WWW大地行情网 | 小77论坛 唯美清纯 逍遥五月天 | 国产99久久久国产精品成人 | 狠狠插视频 | jiizzyou欧美杂交 | 国产精品制服丝袜亚洲欧美 | 亚洲日本国产综合高清 | 免费的又色又爽又黄的视频软件 | 97蜜桃图片 | www.黄色片网站 | 亚洲精品久久久久久久蜜桃臀 | 天天在线干 | 国产精品扒开腿做爽爽爽A片小 | 久久久91精品国产一区二区 | 国产成人18黄网站免费网站 | 色94色欧美setu| 亚洲黄色一区二区 | 这里只有精品6 | 男人看片网址 | 1区2区3区4区产品在线线乱码 | 亚洲精品日韩一区二区电影 | 日韩第一视频 | 波多野吉衣在线播放 | 免看黄大片AA | 久久精品国产99久久 | 黄网址大全免费观看免费 | 色翁荡熄又大又硬又粗又视频图片 | 欲妇荡岳丰满少妇A片 | 老少交玩TUBE | 黄页网站免费在线观看 | 伊人热久久 | 久久都是精品 | 第四色网站主页 | 无码人妻精品1国产婷婷 | 最近中文字幕在线视频1 | 韩国三日本三级中文字幕 | 2024国精产品一二二线精华液 | 亚洲欧美自拍色综合图 | 欧美亚洲亚洲日韩在线影院 | 免费大片黄在线观看视频 | 免费人成在线观看69式小视频 | 亚洲色图15p| 欲香欲色天天综合和网 | 少妇性L交大片W | 国产福利91精品一区二区三区 | 2021日日摸夜夜添夜夜添影院 | 校园又色又夹爽又黄的小说 | 最色网站 | 韩国色情高潮做大尺度电在线观看 | 色狠狠色综合吹潮 | 西西人体一级裸片 | 在线黄网 | 狠狠操天天射 | 久久91精品国产一区二区 | 九九大香尹人视频免费 | 中文字幕乱码亚洲精品一区 | 激情射精爽到偷偷C视频无码 | 成人网站网址在线观看播放 | 美景之屋4在线 | 久久五月综合婷婷中文云霸高清 | 国内美女自拍在线视频观看 | 日本无吗不卡高清免V | 男男挤奶油进去PLAY高污 | 髙清国产性猛交XXXAND | 亚洲另类欧美在线电影 | 久久久久久久综合狠狠综合 | 日日噜噜夜夜狠狠视频 | 精品福利资源在线导航网址 | 自拍电影| 999插插插 | 手机青青在线观看国产 | 日本一区二区在免费 | 国产亚洲自拍一区 | 欧美激情性AAAAA片欧美 | 亚洲欧美日韩精品 | 午夜小电影成人福利片 | 日本理论片强奷AA片 | 国内揄拍国产精品人妻门事件 | 成人无码免费A片免费看软件 | 性一交一乱一伦一色一情孩交 | 日韩在线一 | pron国产| 亚洲综合AV久久国产精品凡士林 | 亚洲AV无码区在线观看东京热 | 五月激激激综合网色播胖胖 | 夜夜躁狠狠躁日日躁孕妇 | 日韩免费播放 | 国偷盗摄自产福利一区在线 | 日韩在线播放中文字幕 | www视频在线观看天堂 | 欧洲色妇| 日本免费网站观看 | 欧美一区二区三区高清不卡tv | 99RE久久爱五月天婷婷 | 最近最新中文字幕在线手机版 | 成人欧美一区二区三区白人 | 丰满少妇69激情啪啪无码 | 五月丁香缴情深爱五月天 | 99精品国自产在线偷拍无码软件 | 国产精品久久久久久久久久 | 国产精品久久久久久久久久一区 | 91久久香蕉国产线看 | 成人国产精品 | 国产成人AV | 色一伦一情一区二区三区 | 福利视频导航大全 | 日本三级韩国三级三级a级按摩 | 中文自拍| 欧美午夜寂寞影院安卓列表 | 久久精品夜夜春 | 五月天婷婷在线观看视频 | 美女脱裤衩扒开尿口给男子摸 | 国产欧美三级 | chinese乱子伦xxxx国语对白 | 亚洲男人片片在线观看 | 国产特级毛片AAAAAAA高清 | 日本jizz视频| 国产黄色片网站 | 米奇777色狠狠8888影视 | 狠狠干97| 国产亚洲欧美日本一二三本道 | 日日噜噜夜夜狠狠 | 邪恶肉肉全彩色无遮盖无翼海贼王 | 麻豆传媒在线完整视频免费 | 欧美日韩中文字幕免费不卡 | 午夜视频在线观看免费高清 | 亚洲视频影院 | 国产成人一区免费观看 | 最新版天堂资源官网 | 亚洲精品无码成人A片在线小说 | 狠狠狠的在啪线香蕉 | 谁有三级网站 | 精品免费A片一区二区久久 精品美女国产互换人妻 | 四虎影视在线影院在线观看 | 欧美激情xxxx性bbbb | 国产孰妇精品AV片国产m3u8 | 丁香五月 激情 婷婷 | 亚洲区色情区激情区小说 | 亚洲精品久久AV无码一区二 | u影快播 | 伦理片午夜在线视频 | CHINESETUBE国产在线观看 chinese熟女熟妇m1f | 2020国产成人久久精品 | 天天射天天干天天操 | 一级做a爱过程免费视 | 国精产品999国精产品官网 | 99久久久免费精品免费 | 女人高潮视频 | 国产手机在线播放 | 日韩欧美视频一区二区 | 国精产品一区二区三区 | 抖音无限次短视频老司机APP | 老师你下面好紧夹死了 | 国产精品人妻在线观看 | 一级人做人a爰免费视频 |