這篇文章主要為大家詳細介紹了WPF集合控制項實作分隔符號ItemsControl Separator,具有一定的參考價值,有興趣的夥伴可以參考一下
在WPF的集合控制項中常常需要在每個集合項之間插入分隔符號樣式,但WPF的ItemsControl沒有相關功能的直接實現,所以只能考慮曲線救國,經過研究,大概想到了以下兩種實現方式。
先寫出ItemsControl的資料模板,如下:
<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就是分隔符,此時每一項的頭部都可以看見分隔符,現在我們的目標是要隱藏掉第一項的分隔符,這就達到了項與項之間才有分隔符的目的。
第一種實作方式最簡單,使用集合項目前向綁定PreviousData,這是四種綁定方式中的一種,估計也是平時用得最少的一種,不過此時就派上用場了,程式碼如下:
<DataTemplate.Triggers> <DataTrigger Binding="{Binding RelativeSource={RelativeSource PreviousData}}" Value="{x:Null}"> <Setter TargetName="Bd" Property="Visibility" Value="Collapsed" /> </DataTrigger> </DataTemplate.Triggers>
當某一項的前項為空時就隱藏分隔符,簡單的一行程式碼搞定。不過這種實作方式有個缺點就是如果使用的是Insert方式向綁定的資料來源的最前面新增資料則就會出現不只一個沒有分隔符號的項,如果是往隊尾或是隊中新增則不會出現這個問題。
第二種實作方式是藉助ItemsControl#的AlternationCount#和 AlternationIndex屬性來為集合項目標記索引號,再隱藏索引號為0的項目的分隔符,代碼如下:
##複製代碼 代碼如下:
#首先在
ItemsControl上綁定AlternationCount到資料來源的Count屬性上,然後此時ItemsControl的AlternationIndex屬性就變成的該集合資料來源的索引號碼了,在觸發器中寫上邏輯即可:
<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>
觸發器判定當索引號為0時就隱藏
Border,這種方式代碼量也不大,優點是能絕對實現這個功能,無論向隊首插入還是隊尾插入,但是AlternationCount和# AlternationIndex屬性原本的意思是用來實現像是隔行變色等功能,此時這種功能被佔用,所以如果你的集合要同時實作分隔符號和隔行樣式的功能可能需要額外加轉換器,不過轉換器內容也很簡單,求個餘數就能還原之前的功能了。
以上是WPF集合控制項實作分隔符號(ItemsControl Separator)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

您可以在 iOS 16 上选择哪些数字格式随着对 iOS 16.4 (beta 2) 的更改,您可以为您的 iPhone 选择三种不同的数字格式。这些格式使用空格、逗号和句点作为分隔数字中千位的符号或作为小数点。小数点是用于将值的整数部分与其小数部分分开的字符,通常由句点 (.) 或逗号 (,) 分配。千位分隔符用于将多位数的数字分成三组,通常由句点 (.)、逗号 (,) 或空格 ( ) 指定。 在最新版本的 iOS 上,您将能够应用以下任何一种数字格式作为您 iPhone 的首选选项:1,23

WPF是微软开发的一种基于.NET Framework的桌面应用程序开发框架。它提供了丰富的用户界面元素、数据绑定和动画等功能,使得开发者可以轻松地创建高质量的桌面应用程序。

在C编程语言中,通常情况下,特殊符号具有特殊的含义,不能用于其他目的。在C编程中使用的一些特殊符号如下−[](){},;*=#让我们了解它们的定义,如下所示:方括号[]-方括号的开闭用于数组元素引用,表示单个和多维下标。圆括号()-这些特殊符号用于函数调用和函数参数。花括号{}-花括号的开闭表示包含多个可执行语句的代码块的开始和结束。逗号(,)-用于分隔多个语句,比如函数调用中的参数分隔。冒号(:)-这是一个运算符,实际上调用了一个叫做初始化列表的东西。分号(;)-它被称为语

WPF(Windows Presentation Foundation)是微软推出的基于Windows的用户界面框架,属于.NET Framework 3.0的一部分。它提供了统一的编程模型、语言和框架,真正做到了分离界面设计人员与开发人员的工作。同时它提供了全新的多媒体交互用户图形界面。您可以使用任何一种.Net编程语言(C#,VB.NET等)进行开发。

在MacOSVentura中更改小数分隔符和数字格式转到Apple菜单并选择“系统设置”转到“一般”选择“语言和地区”找到“数字格式”并下拉旁边的子菜单以访问各种数字格式选项,允许您将小数点分隔符更改为逗号、点或空格选择您想要的数字格式,该设置将立即贯穿整个MacOS。MacOSVentura系统设置中缺少“数字格式”?一些使用不同区域设置的Mac用户发现他们的MacOSVentura系统设置中缺少数字格式部分,这是一个严重的疏忽或一个可爱的错误。无论如何,如果您发现自己缺少数字格

php服务器脚本分隔符有“<?php”、“<?”、“?>”、“<!--”和“//-->”等。详细介绍:1、“<?php”,这是PHP中最常见的开始标记,用于标识PHP代码块的开始,在这个标记之后,可以写入任意的PHP代码;2、“<?”,短标记是PHP中的另一种开始标记,它比较简洁,并且在PHP配置文件中可以通过设置修改,由于短标记可能会与其他语言的标记冲突,因此不推荐使用等等。

如何使用String类的split()方法根据某个分隔符拆分字符串概述:在Java编程语言中,String类是一个非常重要和常用的类。String类提供了许多实用的方法,其中split()方法被用来拆分字符串。split()方法根据指定的分隔符将一个字符串分割成多个子字符串,并将这些子字符串存储在一个字符串数组中。本文将介绍如何使用String类的split

C#开发中如何使用WPF和WinForms进行界面设计引言:在C#开发中,界面设计是一个重要的环节。有多种界面设计工具和框架可供选择,比如WindowsPresentationFoundation(WPF)和WindowsForms(WinForms)。本文将介绍如何使用这两种工具进行界面设计,并提供具体的代码示例。希望能为开发者提供一些参考和帮助。一


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Dreamweaver CS6
視覺化網頁開發工具

禪工作室 13.0.1
強大的PHP整合開發環境

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

Atom編輯器mac版下載
最受歡迎的的開源編輯器