国产精品青草久-国产精品情侣愉拍-国产精品区网红主-国产精品区一区二-国产精品热久久-国产精品热热热-国产精品人aⅴ-国产精品人成在线-国产精品人妻人伦-国产精品人人

金喜正规买球

初步體驗(yàn)數(shù)據(jù)驅(qū)動之美---TreeView

轉(zhuǎn)帖|其它|編輯:郝浩|2011-08-10 14:46:55.000|閱讀 514 次

概述: 繼上一篇《WPF應(yīng)用基礎(chǔ)篇---TreeView》的發(fā)布之后,有部分朋問我關(guān)于里面一些基礎(chǔ)應(yīng)用的問題,可能是我寫得不夠詳細(xì),所以在這里,我想再次那文章中的案例來談?wù)劤醪襟w驗(yàn)數(shù)據(jù)驅(qū)動之美,擺脫舊WinForm編程習(xí)慣(靠觸發(fā)事件來實(shí)現(xiàn)界面的變化)。

# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>

  繼上一篇《WPF應(yīng)用基礎(chǔ)篇---TreeView》的發(fā)布之后,有部分朋問我關(guān)于里面一些基礎(chǔ)應(yīng)用的問題,可能是我寫得不夠詳細(xì),所以在這里,我想再次那文章中的案例來談?wù)劤醪襟w驗(yàn)數(shù)據(jù)驅(qū)動之美,擺脫舊WinForm編程習(xí)慣(靠觸發(fā)事件來實(shí)現(xiàn)界面的變化)。

 1.背景

   我們看看以下案例圖片的功能如何實(shí)現(xiàn):

   

    圖1-1(WinForm兩態(tài)樹)           圖1-2(WPF三態(tài)樹)

  如果我們還處在習(xí)慣于WinForm開發(fā)的時候,我們首先關(guān)注的是,我們需要重寫Tree控件,在上一篇文章中有提到過,這里就不再重復(fù)。然后當(dāng)我們布局和設(shè)計(jì)好數(shù)據(jù)結(jié)構(gòu)后,我們關(guān)心的自然就是選中的時候要做什么,我們首先會考慮到為樹節(jié)點(diǎn)添加事件來處理相應(yīng)的邏輯處理。大致實(shí)現(xiàn)以下幾個步驟(簡單的分析)

  • 把sender或者e參數(shù)轉(zhuǎn)換為TreeNode
  • 從TreeNode中的Tag數(shù)據(jù)
  • 根據(jù)Tag的類型轉(zhuǎn)換為具體數(shù)據(jù)
  • 判斷TreeNode選中的狀態(tài),更改Tag實(shí)例的屬性的狀態(tài)如(IsSelected)
  • 根據(jù)需求比如:

  全部選中-->父節(jié)點(diǎn)CheckBox打鉤 同時修改父節(jié)點(diǎn)數(shù)據(jù),根據(jù)當(dāng)前修改所有子節(jié)點(diǎn)狀態(tài)

  全部未選中-->父節(jié)點(diǎn)CheckBox為空 同時修改父節(jié)點(diǎn)數(shù)據(jù),根據(jù)當(dāng)前修改所有子節(jié)點(diǎn)狀態(tài)

  WinForm具體代碼實(shí)現(xiàn)兩態(tài)樹:

/// <summary>
        /// 設(shè)置父節(jié)點(diǎn)狀態(tài)
        /// </summary>
        /// <param name="node"></param>
        public void SetParentNodeStatus(TreeNode node)
        {
            if (node.Parent != null)
            {
                bool isChecked = true;
                foreach (TreeNode data in node.Parent.Nodes)
                {
                    if (!data.Checked)
                    {
                        isChecked = false;
                        break;
                    }
                }

                if (isChecked)
                {
                    node.Parent.Checked = true;
                    if(node.Parent.Parent!=null)
                    {
                        SetParentNodeStatus(node.Parent);
                    }
                }
                else
                {
                    node.Parent.Checked = false;
                }
            }
        }

        /// <summary>
        /// 設(shè)置孩子節(jié)點(diǎn)狀態(tài)
        /// </summary>
        /// <param name="node"></param>
        public void SetChildNodeStatus(TreeNode node)
        {
            if (node.Nodes!=null)
            {
                foreach (TreeNode data in node.Nodes)
                {
                    data.Checked = node.Checked;
                    if (data.Nodes!=null)
                    {
                        SetChildNodeStatus(data);
                    }
                }
            }
        }

        /// <summary>
        /// 樹節(jié)點(diǎn)被選中后 觸發(fā)的事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void treeView1_AfterCheck(object sender, TreeViewEventArgs e)
        {
           //isClick是全局變量
             //是為了解決無限遞歸而是用的一個標(biāo)志
            if (!isClick)              
              {
                return;
            }

            isClick = false;
            TreeNode node = e.Node;           
            if (node.Parent != null)
            {
                SetParentNodeStatus(e.Node);
            }
            if (node.Nodes != null)
            {
                SetChildNodeStatus(node);
            }
            isClick = true;
        }

   而當(dāng)我們開始慢慢采用WPF之后,我們的編程習(xí)慣會發(fā)生了很大的變化,我們開始有點(diǎn)對觸發(fā)事件來改變邏輯和界面變化(事件驅(qū)動)的做法感到反感。解決上面的問題,我們只需要靠一個接口的幫助,就能實(shí)現(xiàn)兩態(tài)樹的功能。

  • 實(shí)現(xiàn)INotifyPropertyChanged解口
  • 當(dāng)數(shù)據(jù)改變時修改父節(jié)點(diǎn)和相應(yīng)子節(jié)點(diǎn)的狀態(tài),然后把數(shù)據(jù)綁定到界面上去。 

  WPF具體代碼實(shí)現(xiàn)兩態(tài)樹:

//是否被選中
         private bool? isSelected;
         public bool? IsSelected 
         {
             get { return isSelected; }
             set
             {
                 if (isSelected != value)
                 {
                     isSelected = value;   
                     ChangeChildNodes(this);
                     ChangedParentNodes(this);
                     NotifyPropertyChanged("IsSelected");
                 }
             }
         }

/// <summary>
         /// 向下遍歷,更改孩子節(jié)點(diǎn)狀態(tài)
         /// 注意:這里的父節(jié)點(diǎn)不是屬性而是字段
         /// 采用字段的原因是因?yàn)椴幌胱尭腹?jié)點(diǎn)觸發(fā)訪問器而觸發(fā)Setter
         /// </summary>
         /// <param name="CurrentNode"></param>
         public void ChangeChildNodes(Device CurrentNode)
         {
             if (CurrentNode.ChildNodes != null)
             {
                 foreach (var data in CurrentNode.ChildNodes)
                 {
                     data.isSelected = CurrentNode.IsSelected;
                     data.NotifyPropertyChanged("IsSelected");
                     if (data.ChildNodes != null)
                     {
                         data.ChangeChildNodes(data);
                     }
                 }
             }
         }

         /// <summary>
         /// 向上遍歷,更改父節(jié)點(diǎn)狀態(tài)
         /// 注意:這里的父節(jié)點(diǎn)不是屬性而是字段
         /// 采用字段的原因是因?yàn)椴幌胱尭腹?jié)點(diǎn)觸發(fā)訪問器而觸發(fā)Setter
         /// </summary>
         /// <param name="CurrentNode"></param>
         public void ChangedParentNode(Device CurrentNode)
         {
             if (CurrentNode.ParentNode != null)
             {
                 bool isCheck = true;
                 foreach (var data in CurrentNode.ParentNode.ChildNodes)
                 {
                     if (data.IsSelected != true)
                     {
                         isCheck = false;
                         break;
                     }
                 }
                 CurrentNode.parentNode.isSelected = isCheck;
                 CurrentNode.parentNode.NotifyPropertyChanged("IsSelected");
             }
         }

  從 兩段代碼可以看出,WinForm實(shí)現(xiàn)代碼是事件驅(qū)動,首先觸發(fā)一個事件,然后進(jìn)行一些邏輯判斷,而且還需要借助全部變量IsClick來防止代碼無限遞 歸。而WPF的實(shí)現(xiàn)則是靠數(shù)據(jù)驅(qū)動,數(shù)據(jù)變化了,然后才調(diào)用方法來更改數(shù)據(jù)的相應(yīng)狀態(tài)。最后才通知界面刷新數(shù)據(jù)。其實(shí)可以看出現(xiàn)在的需求很簡單就是,根據(jù) 節(jié)點(diǎn)選中狀態(tài)操作樹,但是如果我的需求變化了,例如圖1-2的需求一樣,如果我需要打鉤的時候,操作按鈕的狀態(tài),比如打鉤就連接,不打鉤則斷開。 WinForm的話又要在代碼中做一些邏輯判斷,這很容易實(shí)現(xiàn),但是如果我斷開按鈕按下的時候,只能點(diǎn)擊連接,這時候WinForm的事件就要做很多邏輯 處理,如果需求要求的功能多的話,事件的后臺代碼將越來越復(fù)雜,最后導(dǎo)致邏輯混亂。而WPF實(shí)現(xiàn)的話,則是根據(jù)數(shù)據(jù)變化而且在界面上顯示,當(dāng)我點(diǎn)擊的時 候,修改下數(shù)據(jù)的狀態(tài)則可以。后臺無需要做太多的處理,這樣代碼結(jié)構(gòu)和邏輯會變得相對清晰。

 2.三態(tài)樹具體實(shí)現(xiàn)

  這里將為大家介紹下三態(tài)樹在WPF中的實(shí)現(xiàn),也是對上一篇的補(bǔ)充。本案例是在基于MVVM的基礎(chǔ)上實(shí)現(xiàn)的。要實(shí)現(xiàn)圖1-2(三態(tài)樹)只需要做以下兩個步驟。

  • 定義好數(shù)據(jù)結(jié)構(gòu),并在數(shù)據(jù)上通過實(shí)現(xiàn)INotifyPropertyChanged接口,來屬性變化后通知View刷新數(shù)據(jù)。
  • 把想對應(yīng)的屬性Binding到View的控件上。

  數(shù)據(jù)結(jié)構(gòu)實(shí)體代碼:

/// <summary>
     /// 設(shè)備基類
     /// </summary>
     public class Device:INotifyPropertyChanged
     {
         //是否被選中
         private bool? isSelected;
         public bool? IsSelected 
         {
             get { return isSelected; }
             set
             {
                 if (isSelected != value)
                 {
                     isSelected = value;   
                     ChangeChildNodes(this);
                     ChangedParentNodes(this);
                     NotifyPropertyChanged("IsSelected");
                 }
             }
         }
        
         private DeviceStatus status;
         public DeviceStatus Status
         {
             get { return status; }
             set
             {
                 if (status != value)
                 {
                     status = value;
                     NotifyPropertyChanged("Status");
                 }
             }
         }

         public string Name { get; set; }
         public string ImageUrl{get;set;}

         private List<Device> childNodes;
         public List<Device> ChildNodes
         {
             get { return childNodes; }
             set
             {
                 if (childNodes != value)
                 {
                     childNodes = value;
                     NotifyPropertyChanged("ChildNodes");
                 }
             }
         }

         private Device parentNode;
         public Device ParentNode
         {
             get { return parentNode; }
             set
             {
                 if (parentNode != value)
                 {
                     parentNode = value;
                     NotifyPropertyChanged("ParentNode");
                 }
             }
         }

         /// <summary>
         /// 向下遍歷,更改孩子節(jié)點(diǎn)狀態(tài)
         /// 注意:這里的父節(jié)點(diǎn)不是屬性而是字段
         /// 采用字段的原因是因?yàn)椴幌胱尭腹?jié)點(diǎn)觸發(fā)訪問器而觸發(fā)Setter
         /// </summary>
         /// <param name="CurrentNode"></param>
         public void ChangeChildNodes(Device CurrentNode)
         {
             if (CurrentNode.ChildNodes != null)
             {
                 foreach (var data in CurrentNode.ChildNodes)
                 {
                     data.isSelected = CurrentNode.IsSelected;
                     data.NotifyPropertyChanged("IsSelected");
                     if (data.ChildNodes != null)
                     {
                         data.ChangeChildNodes(data);
                     }
                 }
             }
         }

         /// <summary>
         /// 向上遍歷,更改父節(jié)點(diǎn)狀態(tài)
         /// 注意:這里的父節(jié)點(diǎn)不是屬性而是字段
         /// 采用字段的原因是因?yàn)椴幌胱尭腹?jié)點(diǎn)觸發(fā)訪問器而觸發(fā)Setter
         /// </summary>
         /// <param name="CurrentNode"></param>
         public void ChangedParentNodes(Device CurrentNode)
         {
             if (CurrentNode.ParentNode != null)
             {
                 bool? parentNodeState = true;
                 int selectedCount = 0;  //被選中的個數(shù)
                 int noSelectedCount = 0;    //不被選中的個數(shù)

                 foreach (var data in CurrentNode.ParentNode.ChildNodes)
                 {
                     if (data.IsSelected == true)
                     {
                         selectedCount++;
                     }
                     else if (data.IsSelected == false)
                     {
                         noSelectedCount++;
                     }
                 }

                 //如果全部被選中,則修改父節(jié)點(diǎn)為選中
                 if (selectedCount == 
                     CurrentNode.ParentNode.ChildNodes.Count)
                 {
                     parentNodeState = true;
                 }
                 //如果全部不被選中,則修改父節(jié)點(diǎn)為不被選中
                 else if (noSelectedCount == 
                     CurrentNode.ParentNode.ChildNodes.Count)
                 {
                     parentNodeState = false;
                 }
                 //否則標(biāo)記父節(jié)點(diǎn)(例如用實(shí)體矩形填滿)
                 else
                 {
                     parentNodeState = null;
                 }

                 CurrentNode.parentNode.isSelected = parentNodeState;
                 CurrentNode.parentNode.NotifyPropertyChanged("IsSelected");

                 if (CurrentNode.ParentNode.ParentNode != null)
                 {
                     ChangedParentNodes(CurrentNode.parentNode);
                 }
             }
         }

         public void NotifyPropertyChanged(string name)
         {
             if(PropertyChanged!=null)
             PropertyChanged(this,new PropertyChangedEventArgs(name));
         }
         public event PropertyChangedEventHandler PropertyChanged;
     }

  View具體實(shí)現(xiàn)代碼:

<CheckBox IsChecked="{Binding IsSelected,Mode=TwoWay}" 
Margin="2" VerticalAlignment="Center"/>

    這里只需要把實(shí)體的IsSelected屬性Bingding到View上,Mode是雙向的就可以了,具體的邏輯有實(shí)體內(nèi)部做處理,這樣更能體現(xiàn)出 View中代碼的干凈,而且更能讓View和ViewModel耦合性降到最低。實(shí)現(xiàn)三態(tài)樹的時候有一個小技巧,讓代碼避開了無限遞歸的問題,這里采用屬 性如IsSelected,屬性有setter和gettter訪問器,當(dāng)我們向上、下遍歷的時候,改變的是數(shù)據(jù)中的字段isSelected,這樣就不 會觸發(fā)了屬性的setter。這也是數(shù)據(jù)驅(qū)動的一個優(yōu)點(diǎn)之一。

  3.總結(jié)     

  WPF的主要思想是用數(shù)據(jù)驅(qū)動來代替事件驅(qū)動。當(dāng)數(shù)據(jù)發(fā)生變化的時候才做出一些相應(yīng)的處理。這樣的好處就是:

  • 使得代碼邏輯更加清晰。
  • 可以讓數(shù)據(jù)發(fā)生變化,通過屬性訪問器來控制相應(yīng)的邏輯變化(其實(shí)也是數(shù)據(jù)變化),最后通知View。這樣簡化了邏輯處理而且減少了邏輯混亂的局面。
  • 有利于降低View和ViewModel(或后臺具體實(shí)現(xiàn)代碼)之間的耦合度,也就是說有利于把強(qiáng)依賴關(guān)系轉(zhuǎn)為弱依賴甚至沒依賴關(guān)系。  

標(biāo)簽:

本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn

文章轉(zhuǎn)載自:博客園

為你推薦

  • 推薦視頻
  • 推薦活動
  • 推薦產(chǎn)品
  • 推薦文章
  • 慧都慧問
掃碼咨詢


添加微信 立即咨詢

電話咨詢

客服熱線
023-68661681

TOP
国产成人亚洲日韩欧美 | 91精品自拍视频在线观看 | 超薄肉色丝袜脚交调教视频 | 亚洲第一网站 | 高潮喷奶水在线播放视频 | 欧美在线视频你懂 | av永久天堂免费 | 无码不卡av东京热毛片 | 性色av无码| 国内精品久久久久久久久蜜桃 | 亚洲乱码无人区卡1卡2卡3 | 亚洲精品国产av现线 | 精品欧美一区视频在线观看 | 少妇高潮喷水久久久久久久久 | 天堂网无码av手机版 | 丰满少妇被猛烈进入高清播放 | 毛片无码全部免费 | 亚洲综合性av私人影院 | 色碰视频 | 国产高清超清在线播放 | av一本久道久久波多野结衣 | 精品无人区乱码一区二区三区手机 | 国产高清免费av片在线观看不卡 | 羞羞影院午夜男女爽爽免费 | 中文国产日韩欧 | 九一精品 | 国产偷v国产偷v亚洲高清 | 多人乱p杂交公车战争 | 91天堂国产在线在线 | 99在线精品免费视频九九 | 97碰碰人妻无码视频免费 | 精品久久国产视频 | 亚洲av综合色区无码二区爱av | 欧美日韩在线视频一区 | a级性爱视频在线观看 | 日本高清在线播放一区二区三区 | 国产97人人超碰caoprom… | 国产资源精品一区二区免费 | 精品久久久久久久久久中文字幕 | 日韩经典精品无码一区 | 日韩aⅴ精品一 | www.久久av.com | 国产日韩综合在线视频 | 中文字幕亚洲精品无码 | 日本高清在线播放一区二区三区 | 国产一区二区在线视频 | 日韩中文字幕东京热 | 国产精品v片在线观看 | 国产免费久久精品99久久 | 人妻无码熟妇乱又伦精品视频 | 精品久久亚洲中文无码 | 国产激情免费在线观看片 | 国产香蕉97碰碰久久人人蜜桃 | 成年片色大黄全免费网站久久 | 国产a视频免费观看不卡 | 毛片成人久久久国产一级a毛 | 国产精品自在拍一区二区不卡 | 99福利视频 | 国内揄拍国产精品人妻门事件 | 国产精品激情无码视频 | 亚洲熟女一区二 | 亚洲一区无码精品色 | 欧美成人欧美va天堂在线电影 | 欧美日韩人妻精品系列一 | 91色窝窝国产蝌蚪在线观看 | 国产av一区二区三区传媒 | 午夜成人在线视频 | 在线无码| 欧美日韩国产精品专 | 亚洲精品ty久久久久久久久久 | 国产尤物av尤物在线观看 | 国产丝袜美腿高跟白浆 | 色一情一乱一伦一区二区三欧美 | 婷婷一区二区三区网站 | 国产欧美日韩视频在线观看 | 亚洲国产在一区二区三区 | 午夜啪啪视 | 天天免费国产永久入口 | 国内精品久久久久久99蜜桃 | 91探花 | 果冻传媒2025精品视频 | 国内精品久久久久影院蜜芽 | 亚洲精品美女久久久久9999 | 国产自在现偷国产精品国产日韩 | 国产一级成人毛片 | 国产精品va在线观看无码 | 成人看片黄a免费看在线 | 亚洲一本之道高清在线观看 | 精品一区二区久久久久网站 | 激情内射亚州一区二区三区爱妻 | 高潮喷水在线观看免费 | 日本一区二区精品理论电影 | 日本久久高清一区二区三区毛片 | 无码精品人妻一区二区三区中 | 国产精品视频平台推出全新 | 国产91精品久久久久久无码 | 欧美成人全部费免 | 91短视频在线观看 | 极品黑色丝袜自慰喷水自慰 | 丰满少妇熟女高潮流白浆 | 九九精品影院 | 亚洲电影激情五月激情 | 欧美日韩在线一区乱码视频 | 精品国产va久久久久久久冰 | 免费一级做a爰片久久毛片潮 | 日韩欧美成人免费观看 | 日本免费人成在线观看网站 | 亚洲欧美精品一中文字幕 | 欧美性大战久久久久久久 | 亚洲av永久无码精品网站 | 亚洲国产精品无码久久久秋霞1 | 99久久亚洲综合精品成人网 | 国产精品无码av在毛片 | 99久久99久久精品国产片果冻 | 天天插一插 | 国产不卡福利片在线观看 | 天堂网av一区二区三区 | 亚洲日韩欧美成人 | 国产国产精品人在线观看 | 色婷婷综合久久久久中文 | 日本深夜福利19禁在线播放 | 国产精品国语自产拍 | 免费无码午夜精品电影 | 国内自拍亚洲91 | 国产综合精品一区三区 | 无码国产色欲xxxx视频 | 国产91av视 | 午夜宅宅伦电影网 | 国产成人久久av免费看澳门 | 国产高清无码在线观看 | 日韩国产成人无码av毛片蜜柚 | 日本三级网站在线观看 | 自拍偷自拍亚洲精品情侣 | 99ri日韩精品视频 | 国产91福利精品免费观看 | 国产精品国语刺激对白在线观看 | 成人黄片免费观看 | 动漫精品一区二区三区视频 | 91免费国产自产地址入 | 日韩无码中文字幕亚洲 | 亚洲国产911在线观看 | 红杏亚洲影院一区二区三区 | 97人妻免费视频 | 精品无码国产自产在线观看水 | 国产精品黄大片在线播放 | 毛片成人永久免费视频 | 欧美大片黑寡妇免费观看 | 欧美大片在线视频黑粗硬大 | 国产午夜福利播放 | 97无码人妻福利免费公开在线视频 | 亚洲大片在线观看网址 | 国产一区二区精品 | 伊人色综合一区二区三区 | 国产成人亚洲精品电影在线观看 | 亚洲精品无码久久久久久 | 日本高清中文字幕在线 | 国产一卡二卡三卡四高清 | 国内视频在线精品一区 | 国产成年网站v片在线观看 国产成年无码av片在线 | 丰满av无码久久不卡 | 三颗国产精品视频一区二区免费 | 日本高清69| 久久99一区| 国产精品无码午夜福利 | 国产精品无码久久综合网 | 久久91精品国产91久久小草 | 亚洲97i蜜桃网 | 国产av无码专区亚洲精品 | 国产在线91精品入口 | 成人免费看片又大又黄 | 91精品无人区麻豆 | 91视频91自拍国产自拍在线观看 | 日韩精品卡通无码 | 无码精品人妻一区二区三区影院 | 亚洲日韩国产成网在线观看 | 欧美熟妇sexfree | 99久久免费精品高清特色大片 | 日本a一级毛 | 黄网站免费在线观看日韩 | 精品日韩国产欧美视频 | 老熟妇真实网站 | 精品丰满人妻一区二区三区 | 亚洲第一av无 | 国产v标志的车是什么牌子? | 亚洲一卡二卡三卡四卡无卡麻豆 | 丰满人妻精油按摩一区二区三区 | 精品福利一区二区三区精品 | 精品国产福利第一区二区三区 | 亚洲伊人精品国产午夜欧美 | 91国内精品久久久久免费影院 | av无码不卡在线观看免费 | 国产男女爽爽爽免费视频 | 精品一区二区三区在线观看视频 | 国产精品嫩草影院免费看 | 蜜臀色欲aⅴ国产精品 | 精品色在线 | 欧美日韩亚洲国产精品 | 一级生性活片全黄在线观看 | 亚洲国产乱码卡一卡二卡新区 | 成人亚洲一区无码久久 | 午夜福利久久久噜久噜久久综合 | 精品二区中文字幕播放 | 亚洲a∨午| 国产又粗又猛又黄又爽无遮挡 | 无人区乱码一线忘忧草 | 国产精品成人一区二区三区 | 国精产品一区二区三区四区糖心 | 亚洲国产精品无码久久久久久曰 | 成人女人看片免费视频放人 | 九七影院| 国产美女白嫩嫩在线观看 | 亚洲国产成人精品女人 | 韩国午夜理伦三级理论在线观看 | 精品久久久久精品亚洲aⅴ 精品久久久久精品亚洲av | 精品久久久久久久一区二区 | 欧洲熟妇色xxxx欧美老妇软件 | av香港经典三级级在线观看 | 欧美在线视频你懂 | 97青草最新免费精品视频 | 亚洲精品无码日韩国产不卡av | 午夜福利精品视频在线 | 国产乱女婬av麻豆国产 | 91福利国产在线观看网站 | 亚洲av无码国产精品夜色午夜 | 精品狼人久久久久影院 | 久久av无码aⅴ高潮av喷吹 | 99久久精品一区二区毛片吞精 | 国产成人h在线视频 | 亚洲精品国精品久久99热 | 国产伦精品一区二区三区免费 | 日韩电影免费在线观看网站 | 国产乱人伦av在线a 国产乱人伦av在线a麻豆 | 亚洲产国偷v产偷v自拍涩爱 | 日韩一卡二卡三 | 国产男女无遮挡猛进猛出 | 精品久久久久久久九九九精品 | 91福利国产在线观看香蕉 | 麻豆成人91精品二区三区 | 亚洲av激情无码专区在线播放 | 91亚洲高清在线观看 | 蜜芽国产成人精品区 | av黄色成人在线观看 | 中文字幕无码日韩欧毛 | 丰满人妻一区二区三区视频 | 午夜精品久久久久久毛片 | 精品国产av无码久久久黄 | 国产欧美日韩一区二区三区 | 91久久香蕉国产线看观看软件 | 果冻传媒2025网站入口官方最新 | 91xxx| 久久成人激情视频 | 午夜看片网址97久久精品视频 | 精品精品国产高清a毛片 | 97精品人人妻人人 | 韩国三级中 | 天天看片亚洲欧美国产 | 在线视频一区二区三区三区不卡 | 日本动漫在中国大陆传播分析 | 99久久人妻精品免费一区 | 中文国产成人精品 | 亚洲av永久无码一区二区三区 | 国产极品白嫩超清在线观看 | 97人妻无码公开免费 | 亚洲精品91| 老司机精品福利导航 | 国产精品久久久久久久午夜 | 精品午夜福利在线观看 | 国产亚洲精品无码专区高清 | 国产亚洲日韩在线a不卡 | 狠狠久久亚洲欧美专区 | 成人午夜精品视频在线 | 国语成本人免费aⅴ无码 | 国产成人拍精品视频午夜网站 | 午夜亚洲嘿嘿嘿在线观看 | 特级丰满少妇一级aa | 波多野结衣av大高潮在线观看 | 国产三级在线 | 国产日韩久久久久精品影 | 亚洲国产成人精品久久 | 91精品国产闺蜜国产 | a片在线观看 | 免费无遮拦无码视频在线观看 | 国产亚洲欧美一区 | 国产妇女性爽视频免费 | 精品一区二 | 国产xxxxx在线观看无遮挡 | 91精品福利视频在线观看 | 日本强伦姧护士在线播放 | 国产香港日本三级在线观看 | 呦男呦女| 精品国语任你躁在线播放 | 亚洲成a人片77777国产 | 日本成a人片在线观看影院 日本成人 | 亚洲精品中文字幕乱码三区一二 | 亚洲无码视频一区二区 | 精品久久人人爽天天玩人人妻 | 不卡高清av手机在线观看 | 亚洲夜夜骑 | 午夜不卡 | 国产va在线| 色综合av中文字幕 | 波多野结衣av无码久久一区 | 四虎影视在线观看2413 | 99精品国产99久久久久久97 | 91久久国产亚洲精品 | 妖精色av无码国产在线 | 精品久久亚洲区 | 精品一区二区三区东京热 | 韩国三级bd高清在线观看 | 亚洲性爱av免费在线播放 | 日韩激情无码免费毛片 | 国产亚洲这里只有精品 | 91午夜精品久久久久精品 | 日本一区二区在线 | 动漫av一区二区在线观看 | 午夜福利理论片在线观看 | 三上悠亚国产精品一区 | 丰满少妇人妻无码专区 | 国产成人aⅴ在线免费观看 国产成人aaaaaaa毛片 | 日本ⅴ精品一区二区三区久久 | 亚洲成av人片 | 国产色婷婷精品免费视频 | а天堂中文地址在线 | 亚洲精品高清国产麻豆专区 | 成人看片黄a免费看那个网址 | 国产av一区高清不卡 | 无码av网址 | 波多野结衣视频在线观看 | 亚洲中文字幕无码爆乳app | 国产成人精品一区二三区 | 极品尤物一区二区三区 | 无人在线视频高清免费观看 | 精品无码又大又粗又黄的免费视频 | 亚洲av中文无码乱人伦在线播放 | 无码国产69精品久久久久网站 | 国产乱xxxxx97国语对白 | 国精品国产不卡 | 免费午夜爽爽爽www视频十八禁 | 国产一本视频在线播放 | 亚洲国产va乱码毛片一级高清三 | 亚洲av片在线观看 | 欧美日韩在线观看 | 91短视频app免费版下载 | av无码小缝喷白浆在线观看 | 国产一区二区三区在线免费 | 91免费看`日韩一 | 91久久偷偷做嫩草影院免费看 | 亚洲日本va中文字幕久久 | 午夜人妻久久久久久久久 | 亚洲午夜久久久精品影院 | 国产不卡精品一区二区三区 | 午夜视频久久久久一区 | 国产精选视频 | 国产在线视频一区二区三区 | 一区二区三区日本久久九 | 伊人色综合网一区二区三区 | a级日本理论片在线播放 | 午夜国产福利 | 99亚洲综合精品久久精品 | 亚洲av色香蕉一区二区三区 | 国产精品一久久香蕉国产线看观看 | 国产精品后入内射日本在线观看 | 色综合天天综合网 | 9久久99久久久 | 国产日韩综合一区二区性色av | 欧洲在线性爱av | 99爱第一视频在线观看 | 99久久亚| 亚洲精品午夜无码专区 | 97精品一区二区视频在线观看 | 亚洲午夜成人精品 | 国产av大学生 | 国产高清综合乱色视频 | 亚洲av成人片色在线观看 | 国产亚洲av无码av男人的天堂 | 亚洲熟女乱色一区二区三区 | 精品国语任你躁在线播放 | 亚洲成av人片在线观看网址 | 欧美一裸交aa视频在线 | 欧美日韩国产免费一区二区三区 | 国产日韩精品无码区免费专区国产 | 精品永久久福利一区二区 | 91po最新 | a级毛片免费完整视频 | 久久99精品国产麻豆不卡 | 中文字幕无码一区在线 | 亚洲熟妇色自偷自拍另类 | 91久久国产成人免费观看 | 亚洲va综合va国产产va中文 | 中文字幕日本最新乱码视频 | 色一情一区二区三区四区 | 日日碰狠狠添天天爽无码 | 国产一区二区免费在线观看 | 精品国产群3p交换 | 国产91无码网站在线观看 | 日韩中文字幕 | 一区二区三区国产无码 | 韩国三级bd高清在线观看 | 国产麻豆小电影 | 天天爽天天爽夜夜爽毛片 | 国产无码高 | 色综合天天综合网在线观看 | 欧美性色欧美a在线在线播放 | 国产av激情久久无码天堂 | 中文字幕日韩视频在线观看 | 内射后入在 | 成人av在线播 | 91男女无遮挡猛进猛出免费午夜久久 | 亚洲无码在线免费观看 | 中文国产成人精品久久不卡 | 亚洲国产中文精品无码久久 | 国产美女一级a在线 | 欧美丝袜高跟鞋一区二区 | 国产日韩一区美利坚 | 欧美日韩一区二区三区在线观看 | 在线精品免费视频无码的 | 亚洲av无码专区电影在线观看 | 少妇爆乳无码av无码专区 | 91大神精品视频高清免费观看 | 99久久久无码国产精品免费 | 国产一级aa大片毛片 | 在线观看av不卡网站永久 | 国产日韩欧美一区二区东京热 | 中文字幕av专区无码不卡久久 | 日韩欧美精品一区 | 最新中文字幕av无码不卡 | 最新国产乱人伦偷精品免费网 | 亚洲欧美精品中字久久99 | 黄色片大全在线观看 | 91麻豆国产精品免费视频 | 人人玩人人添人人澡免费 | 亚洲av乱码一区二区三 | 国产乱婬av片免费 | 久久99精品久久久久久三级 | 欧美高清视频一区 | 老司机性色福 | 深夜a级毛片视频免费 | 国产999免费在线视频 | 午夜视频在线观看免费完 | 果冻传媒91制片厂女艺人名单 | 99精品一区二区免费视频 | 欧美一区二区三区精品不卡 | 一级片中文字幕在线观看 | 无码人妻aⅴ一区二区三区日本 | 欧美日韩亚洲国产精品 | 91九色中文在线播放 | 黑人与中国少妇xxxx视频 | av三级片在线播放 | 国产精品无码av在线播放 | 蜜月国产日韩久久久久精品 | 国产欧美日韩精 | 亚洲国产成人精品一区刚刚 | 欧美成人精品三级网站在线观看 | 精品一区二区三区免费视频 | 国产精品中| 99久久免费精品 | 91短视频在线高清hd | av在线天堂 | 暴力变态强奷在线系列 | 亚洲你懂的| 欧美一级特黄大片色欧美精品 | 三区在线观看 | 国产福利免费 | 午夜福利在线观看大片 | 国产精品4p露脸在线播放 | 国产91精品在线观看 | 成人性爱视频在线观看 | 国产九色视 | 国产猛男gayb | 中文字幕精品一区二区三区视频 | 在线亚洲精品福利网址导航 | 在线观看国产精品不卡的av | 中文字幕无码一区在线 | 国产视频一区二区 | 中文字幕无码制服丝袜在线 | 久久97超碰色中文字幕蜜芽 | 精品人妻潮喷久久久又裸又黄 | 欧美熟妇三级在线观看 | 国产精品69白浆在线观看免费 | 亚洲sss整片av在线播放 | 丰满女邻居做爰bd中文字幕短片 | 人人草人人爱 | 日韩中文字幕久久精品 | 91色色无码 | 成人午夜精品视频在线 | 国产91高潮流白浆在线播放un | 无码av| 国内精品久久久久影院优 | 99久国产成人精 | 日韩欧美中文字幕54av | 天堂最新版在线www官网中文地址 | 91精品成人www | 国产精品亚洲а∨天堂免下 | 成人碰碰视频公开老师 | 国产真实伦视频 | 亚洲熟妇自偷自拍另欧美 | 欧美成人在线观看 | 国产精品亚洲v毛片一区二区 | 一区二区三区免费在线观看 | 亚洲视频一区 | 成年女人毛片免费观看中文 | 亚洲一区二区三区不卡在线播放 | 亚洲va中文在线播放免费 | 综合无码一区二区 | 欧美洲精 | 国产综合在线观看 | 日日日干干干 | 97视频人人看人人做首页一97碰 | 天天做日日做天天添天天欢公交 | 亚洲熟妇无码av | 天天干天天色综合 | 国产成人精品永久免费视频 | 欧美成人精品 | 久久99精品亚洲乱码三区 | 国产人成高清视频在线观看免费 | www.中文字幕 | 亚洲成人国产综合2025 | 人妻小说一区二区三区 | 国产成人av片免费 | 91无码福利在线观看 | 午夜欧美日韩精品久久久久久 | 午夜福利在线观看一区二区 | 国产精品一区二区三 | 日本爽快片1 | 欧美成人一区二区三区不卡视频 | 国产性一交一乱一伦一色一情 | 亚洲中文字幕无码久久精品1 | 91蜜桃国产| 色欲久久久天天天综合网精品 | 麻豆人妻| 国产成人亚洲精品 | 亚洲国产综 | 国产免费一区二区视频 | 91tv成人影院app | 狠狠色狠狠综合天天 | 国产成人av一区二区三区中文精品 | 天美麻豆成人av精品视频 | 午夜亚洲福利在线 | 香蕉视频在线观看免费 | 国产上床视频在线观看 | 综合一区中亚洲国产成人综合精品 | 国产午夜福利在线永久视频 | 欧美大片va | 欧美色欧美 | 香蕉伊思人视频 | 午夜免费免费啪视频观看 | 精品少妇人妻 | 在线播放午夜理论片 | 毛片在线播放网站 | 插b内射18免费视频 插逼网站 | 亚洲日本va午夜在线影院 | 91亚洲国产成人久久精品 | 人人爽人人爽人人片av免费 | 97密桃75hd中字在线观看 | 91视频91自拍国产自拍在线观看 | 欧美一区区| 国产精品内射后入合集 | 国产精品一区不卡在线观看 | 成年片免费观看网站免费观看 | 国产精品乱码一区二区三区软件 | a毛片视频免费观看 | www.91官网| 亚洲a∨毛片无码专区国产乱码 | 国产精品视频久久久 | 98精品国产高清在线看入口安 | 国产日本欧美在线观看 | 国产jk白丝视频在线观看 | 最新国产中文字幕 | 99精品全国免费观看视频 | 99久久网站 | 天美传媒免费观看一二三在线 | 欧美一区二区免费 | 国产精品不卡在线观看的a 国产精品厕所电影 | 日本强不| 午夜三级毛片欧美国产精品 | 国产精品美女自在线观看免费 | 国产字幕制服中文在线 | 欧美性xxxx极品hd欧美风情 | 国产最变态调教视频 | 老司机亚洲精品影院无码 | 亚洲av中文无码乱人伦在线观看 | 国产亚洲成归v人片在线观看 | 亚洲精品无码观看 | 午夜视频污在线观看 | 91精品亚洲欧美午夜福利 | 加勒比无码中出人妻 | www深夜成人网站下载麻豆 | 99国产精品一 | 日本三级免费电影一区二区三区 | 亚洲欧美精品日韩欧美 | 亚洲中文字幕久久精品无码喷水 | 午夜视频在线观看免费观看在线观看 | 成年男女免费视频网站 | 国内精品国语自产拍在线观看91 | 亚洲av日韩av天堂一区二区三区 | 欧美一区精品视频一区二区 | 最新国产中文字幕 | 精品伊人久久大线蕉色 | 日韩人妻精品无码一区二区三区 | 91麻豆天美精东蜜桃传媒在线平台 | 国产在线ts人妖免费视频 | 99re在线视频精品新地址 | 日本一道本不卡免费播放 | 国产精品一区二区三区av | 国产一级一级毛片真人视频 | 国产成人亚洲精品狼色在线 | 精品精品国产高清a毛片 | av无码av无码专区 | 无码专区最新地址发布 | 成年午夜免费aⅴ在线观看 成年午夜一级毛 | 国产高清免费一级a久久 | 精品无码一区二区三区电影 | 日韩欧美精品一区二区三区在线 | 色欲欧美精品一区成人精品 | 午夜dj在线观看免费动漫大全 | 在线日韩欧美日本国产 | 国产自产精品爆乳一区二区 | 欧美综合自拍亚洲综合图区 | 最新天堂√最新版中文在线99 | 亚洲日本乱码 | 午夜亚洲av日韩aⅴ无码大全 | 亚洲国产精品99久久久久久 | 亚洲综合一区国产精品 | 亚洲国产一区二区三区四久久 | 亚洲爆乳无码 | 日韩精品一区二区三区视频 | 亚洲成α人片在线观看欧美在线视频 | 日韩国产av中文字幕 | 国产成人aa在线观看 | 中文字幕色婷婷在线精品中 | 精品久久亚洲一级α | 国产亚洲精久久久久久无码 | 欧美喷潮久久久xxxxx | 国产激情片免费在线观看 | 国产无套码aⅴ在线观看在 国产无套内射又大又 | www污污污网站在线观看美女被操 | 欧美午夜精品 | av无码破解在线 | 国产精品亚洲欧美大片在线观看 | 久草超碰一区二区在线 | 国产精品精品自在线拍 | 精品久久人妻av中文字幕 | 亚洲av无码精品国产午夜久久 | 精品无码国产不卡在线观看 | 97国产视频| 日韩av无码一区二区三区无码 | 色猫咪av在| 日韩av片高清在线观看 | 欧美日韩一区二区三区在线观看 | 精品无码av毛片一区二区三区 | 欧美在线一级精品 | 日韩在线永久免费播放 | 在线日本高清不卡免费v | 国产精品成人久久久久久久 | 国产字幕制服中文在线 | 无码国产精成人午夜视频一区二区 | 欧美高清精品一区二区 | 九月婷婷人人澡人人 | 国产va免费精品高清在线观看 | 亚洲av永久无码精品秋霞电影 | 香蕉久久aⅴ一区二区三区 香蕉久久av一区二区三区 | 亚洲国产韩国日本一区 | 国产精品v片在线观看 | 亚洲国产精品激情在线观看 | 欧美日韩午夜精 | 国产精品91在线播放久 | 日本三级韩国三级香港三级a级 | 91午夜精品亚洲一区二区三区 | 敌伦交换一区二区三区流畅不卡顿 | 精品久久久久久无码专区不卡 | 亚洲变态欧美另类精品 | 97人妻无码二区 | 色欲精品国产一区二区三区av | 国产一卡2卡三卡4卡精 | 91欧洲在线视精品在亚洲 | 中文字幕精品久久久久人妻红杏1 | 日韩a优精品在线观看 | 中文字幕乱码一区久久 | av大片在线 | 国产精品日韩有码中文字幕 | 国产极品 | 精品爆乳一区二区三区无码av | 亚洲成a人片在线观看 | 欧美肥妇毛| 亚洲一区二区三区中文字幕在线 | 精品国产午夜理论片不卡 | 国产91密拍在线高清无删减 | 亚洲av无码影视久久乐第一区 | 99精品国产在热久久 | 亚洲av午夜精品无码专区 | 国产又爽又黄无码无遮 | 熟妇人妻系列aⅴ无码专区友 | 91尤物国产自产福利在线观看 | 黄色网站免费在线观看 | 色色综合资源站 | 国产日韩欧美成人 | 精品人妻大屁股白浆无码下载 | www.黄色网址 | 亚洲电影有码中文字幕 | 精品自拍视频在线观看电影 | 国产探花| 日韩无码av片亚洲成人精品网站 | 成年女人免费视频拍拍拍 | 成全在线观看免费高清动漫 | 亚洲成a∨人片在无码 | 中文字幕人妻系列乱码 | 国产精华最好的产 | 99人妻日韩精品一区二区传媒 | 精品久久久久久久久久中文字幕 | 精品人妻系列无码一区 | 亚洲影院丰满少妇中文字幕无码 | 人人看电影网 | 久久99国产精品片久久99蜜桃 | 中文字幕亚洲一区二区三区 | 91在线品视觉盛宴国产 | 无码专区—va亚洲v专区 | 免费一区二区三区 | 亚洲欧美一区二区三区一猛片 | 欧美视频一区二区三区在线观 | 国产中文字幕乱人伦在线 | 久久www免费人成看片色多多 | 精品国产一区二区三区免费不 | 99亚洲综合精品久久精品 | 亚洲国产成人精品女人 | 亚洲视频在线观看一区 | 亚洲av无码成h人动漫在线观看 | 国产精品成人99久久久久 | 午夜片无码区在线观看视频 | 日本欧美一区二区三区在线观看 | 人妻精品久久无码区 | 成人区精品一区二区毛片不卡 | 麻豆国产精品色欲av亚洲三区 | 国产精品高清另类一区二区三区 | 亚洲无码二级黄色网站 | 国产成人麻豆精品午夜福利在 | 99精品国产福利片在线观看 | 无码一期计| аv天堂手机版在线观看 | 亚洲精品国产成人片 | 亚洲日韩中文字幕a∨ | 日韩经典欧美一区二区三区 | 午夜日本电影大全免费播放 | www夜片内射视频日韩精品成 | 天天做日日做天天添天天欢公交 | 国产午夜精品区 | 亚洲一本之道高清在线观看 | 国产精品区一区二区三在线播放 | 三年片在线观看免费观看大全中国 | 九九免费精品视频 | 精品视频午夜一区二区 | 欧洲一级一片在线观看免费精品色 | 麻豆国产av超爽剧情系列 | 日韩免费av | 国产伦精品一区二区三区视频 | 色妞www精品视频 | 九九九精品视频中文无码 | 少妇久久久久久被弄到高潮 | 91精品国产乱 | 久久99久久成人 | 国产欧美综合在线观看 | 91传媒手机在线观看 | 成人黄色网站视频麻豆8 | 久久99久久99| 91久久偷偷做嫩草影院免费看 | 神马午夜福利久久免费观看 | 午夜国产毛片v区一区二区三区 | 狠狠色丁香久久婷婷综合五月 | 国产成人啪精品午 | 精品久久免费观看 | 在线无码专区人妻 | 亚洲午夜国产精品无卡 | 久久不见久久见免费影院视频 | 91麻豆国产免费 | 国产高清午 | 爆乳邻居肉 | 精品国产乱码久久久久软件 | 国产一国产一级无码网站 | 欧美动漫频道 | 1区2区3区4区产品乱码99 | av喷水高潮喷水在线观看c | 国产国产午夜精华免费 | 国产成人精品白浆久久69 | 国产免费无码av片在线观看不卡 | 亚洲成a人片在线观看无码3d | 日韩在线观看第一页 | 欧美日韩人妻精品一区二区三区 | 97人人超人人超国产免费 | 国产av剧情中文正在播放 | 91影视免费版 | 无码人妻精品一 | 99精品国产在热2025一级毛片 | 国产爆乳无码av一区二区 | 亚洲午夜无码毛片av久久 | 国产欧美另类久久久精品丝瓜 | 国产一区二区不卡老阿姨 | 91在线无码精品入口91资源齐全 | 亚洲国产一成人久久精品 | 99久久99久久精品国产 | 国产午夜精品理伦片 |