最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

WPF中的數(shù)據(jù)模板用法介紹

 更新時間:2022年01月28日 09:17:08   作者:痕跡g  
這篇文章介紹了WPF中的數(shù)據(jù)模板用法,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

數(shù)據(jù)模板常用在3種類型的控件, 下圖形式:

  • 1.Grid這種列表表格中修改Cell的數(shù)據(jù)格式, CellTemplate可以修改單元格的展示數(shù)據(jù)的方式。
  • 2.針對列表類型的控件, 例如樹形控件,下拉列表,列表控件, 可以修改其中的ItemTemplate。
  • 3.修改ContentTemplate, 例UserControl控件的數(shù)據(jù)展現(xiàn)形式。

CellTemplate 模板

下面用一個例子, 來演示CellTemplate使用。例子實現(xiàn)一個DataGrid 展示一個普通的數(shù)據(jù)標, 同時新增一列CellTemplate添加兩個自定義的按鈕, 如下圖所示。

            <DataGrid Name="gd" AutoGenerateColumns="False" CanUserSortColumns="True"  CanUserAddRows="False">
                <DataGrid.Columns>
                    <DataGridTextColumn Binding="{Binding UserName}" Width="100" Header="學生姓名"/>
                    <DataGridTextColumn Binding="{Binding ClassName}" Width="100" Header="班級名稱"/>
                    <DataGridTextColumn Binding="{Binding Address}" Width="200" Header="地址"/>
                    <DataGridTemplateColumn Header="操作" Width="100" >
                        <DataGridTemplateColumn.CellTemplate>
                            <DataTemplate>
                                <StackPanel Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Left">
                                    <Button Content="編輯"/>
                                    <Button Margin="8 0 0 0" Content="刪除" />
                                </StackPanel>
                            </DataTemplate>
                        </DataGridTemplateColumn.CellTemplate>
                    </DataGridTemplateColumn>
                </DataGrid.Columns>
            </DataGrid>

完成操作, 然后后臺進行該DataGrid進行綁定數(shù)據(jù), 查詢綁定后的效果。

            List<Student> students = new List<Student>();
            students.Add(new Student() { UserName = "小王", ClassName = "高二三班", Address = "廣州市" });
            students.Add(new Student() { UserName = "小李", ClassName = "高三六班", Address = "清遠市" });
            students.Add(new Student() { UserName = "小張", ClassName = "高一一班", Address = "深圳市" });
            students.Add(new Student() { UserName = "小黑", ClassName = "高一三班", Address = "贛州市" });
            gd.ItemsSource = students;

最終的效果, 在數(shù)據(jù)的表格最后一列, 將會在一列中分別生成 兩個普通按鈕。

ItemTemplate

在列表的控件中, 常常會出現(xiàn)一些需求, 類似在下拉控件或樹控件中添加一個 CheckBox選擇框, 一個圖標或圖片, 這個時候, 我們就可以利用自定義的DataTemplate 來實現(xiàn)這個功能,

接下來, 用一個示例來簡單演示其功能, 同樣, 該例子演示利用 ListBox 和 ComboBox來綁定一個 顏色代碼列表, 同時展示其顏色。

    <Window.Resources>
        <DataTemplate x:Key="comTemplate">
            <StackPanel Orientation="Horizontal" Margin="5,0">
                <Border Width="10" Height="10" Background="{Binding Code}"/>
                <TextBlock Text="{Binding Code}" Margin="5,0"/>
            </StackPanel>
        </DataTemplate>
    </Window.Resources>
    <Grid>
        <StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
            <ComboBox Name="cob" Width="120" Height="30" ItemTemplate="{StaticResource comTemplate}"/>
            <ListBox Name="lib" Width="120" Height="100" Margin="5,0"  ItemTemplate="{StaticResource comTemplate}"/>
        </StackPanel>
    </Grid>

上面的代碼中, 定義了一個DataTemplate , 頂一個 長寬10px的border用于顯示顏色代碼, 綁定到Border背景顏色上, 定義了一個TextBlock用于展示顏色的代碼。

下面為后臺的綁定代碼

            List<Color> ColorList = new List<Color>();
            ColorList.Add(new Color() { Code = "#FF8C00" });
            ColorList.Add(new Color() { Code = "#FF7F50" });
            ColorList.Add(new Color() { Code = "#FF6EB4" });
            ColorList.Add(new Color() { Code = "#FF4500" });
            ColorList.Add(new Color() { Code = "#FF3030" });
            ColorList.Add(new Color() { Code = "#CD5B45" });

            cob.ItemsSource = ColorList;
            lib.ItemsSource = ColorList;

最終的測試效果如下所示:

ItemsControl

定義ItemsControl 主要分兩個步驟:

  • 1.設(shè)置ItemsPanel容器, 用于容納列表的最外層容器
  • 2.定義子項的DataTemplate
           <ItemsControl Name="ic">
            <ItemsControl.ItemsPanel>
                <ItemsPanelTemplate>
                    <WrapPanel Orientation="Horizontal"/>
                </ItemsPanelTemplate>
            </ItemsControl.ItemsPanel>

            <ItemsControl.ItemTemplate>
                <DataTemplate>
                    <Button Width="50" Height="50" Content="{Binding Code}"/>
                </DataTemplate>
            </ItemsControl.ItemTemplate>
        </ItemsControl>

上面代碼中, 定義了一個WarpPanel 容器為ItemControl的 最外層容器, 子項數(shù)據(jù)模板則綁定了一個按鈕, 后臺代碼綁定幾條數(shù)據(jù), 查看其效果: 橫排排列五個按鈕, 內(nèi)容分別是 1~6.

            List<Test> tests = new List<Test>();
            tests.Add(new Test() { Code = "1" });
            tests.Add(new Test() { Code = "2" });
            tests.Add(new Test() { Code = "3" });
            tests.Add(new Test() { Code = "4" });
            tests.Add(new Test() { Code = "6" });
            ic.ItemsSource = tests;

查看ItemsControl可視化樹的結(jié)構(gòu)組成?

剖析該結(jié)構(gòu), 可以看到, 紫色的1處, 為最外層的WrapPanel容器, 用于容納排列按鈕, 由于該示例設(shè)置了 Orientation="Horizontal" , 所以按鈕則按水平排列, 再看 橘色 2處, 可以看見子項外層由一個內(nèi)容呈現(xiàn)包括著, 內(nèi)容為一個按鈕, 由于綁定搞得數(shù)據(jù)是5個, 所以分別生成了內(nèi)容為1~6的5個按鈕。

說明: 那是不是以為則ItemsPanel 放置任何元素都行? 很明顯是不行的。 ItemsPanel的容器需要滿足一個條件, 則是屬于Panel族的元素, 否則會提示以下錯誤:

關(guān)于每種元素的分類可以看關(guān)于控件介紹的文章: http://www.fzitv.net/article/236066.htm

ContentTemplate

長話短說, 這個東西用的太少了, 詳細的可以搜索一下相關(guān)的使用資料。

本章測試代碼下載

到此這篇關(guān)于WPF中的數(shù)據(jù)模板用法介紹的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • .Net行為型設(shè)計模式之策略模式(Stragety)

    .Net行為型設(shè)計模式之策略模式(Stragety)

    這篇文章介紹了.Net行為型設(shè)計模式之策略模式(Stragety),文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-05-05
  • .NET6一些常用組件的配置及使用

    .NET6一些常用組件的配置及使用

    本文詳細講解了.NET6一些常用組件的配置及使用方法,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-12-12
  • ASP.NET Substitution 控件的使用方法

    ASP.NET Substitution 控件的使用方法

    Substitution 控件可用于采用緩存配置的 ASP.NET 網(wǎng)頁上。使用 Substitution 控件,可以在網(wǎng)頁上創(chuàng)建一些區(qū)域,這些區(qū)域可以動態(tài)更新,然后集成到緩存的網(wǎng)頁中。
    2016-04-04
  • ASP.NET?Core中的Blazor組件介紹

    ASP.NET?Core中的Blazor組件介紹

    這篇文章介紹了ASP.NET?Core中的Blazor組件,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-03-03
  • ASP.Net Core MVC基礎(chǔ)系列之中間件

    ASP.Net Core MVC基礎(chǔ)系列之中間件

    這篇文章介紹了ASP.Net Core MVC的中間件,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-02-02
  • ASP.NET中 TextBox 文本輸入框控件的使用方法

    ASP.NET中 TextBox 文本輸入框控件的使用方法

    TextBox 控件為用戶提供了一種向 ASP.NET 網(wǎng)頁中鍵入信息(包括文本、數(shù)字和日期)的方法。
    2016-04-04
  • ASP.NET Core讀取配置文件

    ASP.NET Core讀取配置文件

    這篇文章介紹了ASP.NET Core讀取配置文件的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-02-02
  • ASP.NET web.config 配置節(jié)點詳解

    ASP.NET web.config 配置節(jié)點詳解

    這篇文章主要介紹了ASP.NET web.config 節(jié)點的配置,講解的非常詳細,需要的朋友可以參考下。
    2016-06-06
  • ASP.Net?Core?MVC基礎(chǔ)系列之獲取配置信息

    ASP.Net?Core?MVC基礎(chǔ)系列之獲取配置信息

    這篇文章介紹了ASP.Net?Core?MVC獲取配置信息的方法,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-02-02
  • asp.net下SQLite(輕量級最佳數(shù)據(jù)庫) 原理分析和開發(fā)應用

    asp.net下SQLite(輕量級最佳數(shù)據(jù)庫) 原理分析和開發(fā)應用

    SQLite是一個開源的嵌入式關(guān)系數(shù)據(jù)庫,它在2000年由D. Richard Hipp發(fā)布,它的減少應用程序管理數(shù)據(jù)的開銷,SQLite可移植性好,很容易使用,很小,高效而且可靠
    2011-10-10

最新評論

吉木萨尔县| 安康市| 米泉市| 烟台市| 邻水| 老河口市| 阳泉市| 齐河县| 鲁甸县| 岢岚县| 栖霞市| 贵南县| 宜丰县| 马公市| 荔浦县| 上思县| 军事| 普兰店市| 福州市| 宿迁市| 丹阳市| 无棣县| 景德镇市| 屏东县| 会理县| 屏东市| 永胜县| 金堂县| 泸州市| 临西县| 栾城县| 德钦县| 内江市| 乐平市| 西贡区| 菏泽市| 二手房| 包头市| 榕江县| 上杭县| 凉山|