内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

WPF集合控件如何實(shí)現(xiàn)分隔符-創(chuàng)新互聯(lián)

本篇文章為大家展示了WPF集合控件如何實(shí)現(xiàn)分隔符,代碼簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過(guò)這篇文章的詳細(xì)介紹希望你能有所收獲。

創(chuàng)新互聯(lián)是一家成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站,提供網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),網(wǎng)站制作,建網(wǎng)站,按需網(wǎng)站建設(shè),網(wǎng)站開發(fā)公司,從2013年開始是互聯(lián)行業(yè)建設(shè)者,服務(wù)者。以提升客戶品牌價(jià)值為核心業(yè)務(wù),全程參與項(xiàng)目的網(wǎng)站策劃設(shè)計(jì)制作,前端開發(fā),后臺(tái)程序制作以及后期項(xiàng)目運(yùn)營(yíng)并提出專業(yè)建議和思路。

這篇文章主要為大家詳細(xì)介紹了WPF集合控件實(shí)現(xiàn)分隔符ItemsControl Separator,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

在WPF的集合控件中常常需要在每一個(gè)集合項(xiàng)之間插入一個(gè)分隔符樣式,但是WPF的ItemsControl沒(méi)有相關(guān)功能的直接實(shí)現(xiàn),所以只能考慮曲線救國(guó),經(jīng)過(guò)研究,大概想到了以下兩種實(shí)現(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就是分隔符,此時(shí)每一項(xiàng)的頭部都可以看見(jiàn)分隔符,現(xiàn)在我們的目標(biāo)是要隱藏掉第一項(xiàng)的分隔符,這就達(dá)到了項(xiàng)與項(xiàng)之間才有分隔符的目的。

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

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

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

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

復(fù)制代碼 代碼如下:

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

首先在ItemsControl上綁定AlternationCount到數(shù)據(jù)源的Count屬性上,然后此時(shí)ItemsControl的AlternationIndex屬性就變成的該集合數(shù)據(jù)源的索引號(hào)了,在觸發(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ā)器判定當(dāng)索引號(hào)為0時(shí)就隱藏Border,這種方式代碼量也不大,優(yōu)點(diǎn)是能絕對(duì)實(shí)現(xiàn)這個(gè)功能,無(wú)論向隊(duì)首插入還是隊(duì)尾插入,但是AlternationCountAlternationIndex屬性本來(lái)的含義是用來(lái)實(shí)現(xiàn)比如隔行變色等功能,此時(shí)這種功能被占用,所以如果你的集合要同時(shí)實(shí)現(xiàn)分隔符和隔行樣式的功能可能需要額外加轉(zhuǎn)換器,不過(guò)轉(zhuǎn)換器內(nèi)容也很簡(jiǎn)單,求個(gè)余數(shù)就能還原之前的功能了。

上述內(nèi)容就是WPF集合控件如何實(shí)現(xiàn)分隔符,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計(jì)公司行業(yè)資訊頻道。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

當(dāng)前文章:WPF集合控件如何實(shí)現(xiàn)分隔符-創(chuàng)新互聯(lián)
網(wǎng)頁(yè)鏈接:http://www.rwnh.cn/article42/icjec.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、小程序開發(fā)、網(wǎng)站導(dǎo)航Google、定制網(wǎng)站、定制開發(fā)

廣告

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

網(wǎng)站優(yōu)化排名
南召县| 二手房| 白水县| 郸城县| 喀喇沁旗| 锡林浩特市| 全椒县| 岳阳县| 北辰区| 隆昌县| 鄂伦春自治旗| 双江| 伊吾县| 文登市| 泰顺县| 明星| 浮山县| 兰西县| 汉中市| 慈溪市| 屯昌县| 普陀区| 东辽县| 桦甸市| 牙克石市| 麻阳| 中卫市| 昆明市| 金阳县| 楚雄市| 永济市| 石城县| 永胜县| 尤溪县| 莱西市| 涟水县| 潮州市| 紫阳县| 达日县| 钟山县| 汾阳市|