欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

WPF如何實現(xiàn)分隔符-創(chuàng)新互聯(lián)

這篇文章給大家分享的是有關(guān)WPF如何實現(xiàn)分隔符的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

創(chuàng)新互聯(lián)建站是一家專注于網(wǎng)站設(shè)計制作、網(wǎng)站設(shè)計與策劃設(shè)計,管城網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)建站做網(wǎng)站,專注于網(wǎng)站建設(shè)十載,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務涵蓋:管城等地區(qū)。管城做網(wǎng)站價格咨詢:18982081108

在WPF的集合控件中常常需要在每一個集合項之間插入一個分隔符樣式,但是WPF的ItemsControl沒有相關(guān)功能的直接實現(xiàn),所以只能考慮曲線救國,經(jīng)過研究,大概想到了以下兩種實現(xiàn)方式。

先寫出ItemsControl的數(shù)據(jù)模板,如下:

<ItemsControl ItemsSource="{Binding Source}" BorderThickness="1" BorderBrush="Blue" VerticalAlignment="Stretch">
 <ItemsControl.ItemTemplate>
  <DataTemplate>
   <Grid>
    <Grid.RowDefinitions>
     <RowDefinition Height="Auto" />
     <RowDefinition Height="*" />
    </Grid.RowDefinitions>
    <Border Name="Bd" Grid.Row="0" Height="1" Background="Red" />
    <TextBlock Grid.Row="1" Text="{Binding}" />
   </Grid>
  </DataTemplate>
 </ItemsControl.ItemTemplate>
</ItemsControl>

其中名為Bd的Border就是分隔符,此時每一項的頭部都可以看見分隔符,現(xiàn)在我們的目標是要隱藏掉第一項的分隔符,這就達到了項與項之間才有分隔符的目的。

第一種實現(xiàn)方式最簡單,使用集合項前向綁定PreviousData,這是四種綁定方式中的一種,估計也是平時用得最少的一種,不過此時就派上用場了,代碼如下:

<DataTemplate.Triggers>
 <DataTrigger Binding="{Binding RelativeSource={RelativeSource PreviousData}}"
     Value="{x:Null}">
  <Setter TargetName="Bd" Property="Visibility" Value="Collapsed" />
 </DataTrigger>
</DataTemplate.Triggers>

當某一項的前項為空時就隱藏分隔符,簡單的一行代碼搞定。不過這種實現(xiàn)方式有個缺點就是如果使用的是Insert方式向綁定的數(shù)據(jù)源的最前面添加數(shù)據(jù)則就會出現(xiàn)不止一個沒有分隔符的項,如果是往隊尾或者隊中添加則不會出現(xiàn)這個問題。

第二種實現(xiàn)方式是借助ItemsControlAlternationCountAlternationIndex屬性來為集合項標記索引號,再隱藏索引號為0的項的分隔符,代碼如下:

復制代碼 代碼如下:

<ItemsControl ItemsSource="{Binding Source}" BorderThickness="1" BorderBrush="Blue"
              VerticalAlignment="Stretch" AlternationCount="{Binding Source.Count}">

首先在ItemsControl上綁定AlternationCount到數(shù)據(jù)源的Count屬性上,然后此時ItemsControl的AlternationIndex屬性就變成的該集合數(shù)據(jù)源的索引號了,在觸發(fā)器中寫上邏輯即可:

<Border Name="Bd" Grid.Row="0" Height="1" Background="Red">
 <Border.Style>
  <Style TargetType="{x:Type Border}">
   <Style.Triggers>
    <DataTrigger
     Binding="{Binding Path=(ItemsControl.AlternationIndex), 
   RelativeSource={RelativeSource AncestorType={x:Type ContentPresenter}}}"
     Value="0">
     <Setter Property="Visibility" Value="Collapsed" />
    </DataTrigger>
   </Style.Triggers>
  </Style>
 </Border.Style>
</Border>

觸發(fā)器判定當索引號為0時就隱藏Border,這種方式代碼量也不大,優(yōu)點是能絕對實現(xiàn)這個功能,無論向隊首插入還是隊尾插入,但是AlternationCountAlternationIndex屬性本來的含義是用來實現(xiàn)比如隔行變色等功能,此時這種功能被占用,所以如果你的集合要同時實現(xiàn)分隔符和隔行樣式的功能可能需要額外加轉(zhuǎn)換器,不過轉(zhuǎn)換器內(nèi)容也很簡單,求個余數(shù)就能還原之前的功能了。

感謝各位的閱讀!關(guān)于“WPF如何實現(xiàn)分隔符”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

網(wǎng)站標題:WPF如何實現(xiàn)分隔符-創(chuàng)新互聯(lián)
URL鏈接:http://chinadenli.net/article10/jjedo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、虛擬主機、搜索引擎優(yōu)化、網(wǎng)站制作、網(wǎng)站排名、定制開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化
国产免费一区二区三区不卡| 国内精品偷拍视频久久| 亚洲中文字幕在线乱码av| 国产福利在线播放麻豆| 中文人妻精品一区二区三区四区| 日韩精品人妻少妇一区二区| 久久人妻人人澡人人妻| 亚洲一级二级三级精品| 国产视频在线一区二区| 99国产高清不卡视频| 成人国产激情在线视频| 老司机亚洲精品一区二区| 中文字幕日韩无套内射| 国产毛片av一区二区三区小说| 欧美乱妇日本乱码特黄大片| 欧美一区二区口爆吞精| 国产一区二区不卡在线视频| 日韩在线中文字幕不卡| 日韩一区二区三区18| 99久久精品视频一区二区| 蜜桃臀欧美日韩国产精品| 亚洲精品欧美精品一区三区| 色婷婷人妻av毛片一区二区三区| 久热香蕉精品视频在线播放| 亚洲二区欧美一区二区| 亚洲婷婷开心色四房播播| 日韩成人免费性生活视频| 中文字幕日韩一区二区不卡 | 亚洲午夜福利不卡片在线| 日韩在线中文字幕不卡| 日韩精品毛片视频免费看| 国产目拍亚洲精品区一区| 国产精品欧美一区两区| 2019年国产最新视频| 日本人妻的诱惑在线观看| 国产精品美女午夜福利| 亚洲综合伊人五月天中文| 国产又粗又长又大的视频| 91精品国产av一区二区| 麻豆印象传媒在线观看| 亚洲最新的黄色录像在线|