`
lindexi-gd
  • 浏览: 139727 次
社区版块
存档分类
最新评论

win10 uwp 绑定多数据

 
阅读更多

经常我们需要绑定的数据有多个,当添加到集合控件的对象类型结构比较复杂,我们希望自己来定义排版布局,这时可以使用ItemTemplate用资源的定义

现在有数据
caddressBook

    public class caddressBook
    {
        public caddressBook()
        {

        }
        /// <summary>
        /// 标识符
        /// </summary>
        public string id
        {
            set;
            get;
        }
        /// <summary>
        /// 通讯人姓名
        /// </summary>
        public string name
        {
            set;
            get;
        }
        /// <summary>
        /// 联系方式
        /// </summary>
        public string contact
        {
            set;
            get;
        }
        /// <summary>
        /// 工作地点
        /// </summary>
        public string address
        {
            set;
            get;
        }
        /// <summary>
         /// 城市
         /// </summary>
        public string city
        {
            set;
            get;
        }
        /// <summary>
        /// 备注
        /// </summary>
        public string comment
        {
            set;
            get;
        }
    }

我们在MainPage.xaml用

    <Page.Resources>
        <DataTemplate x:Key="xaddressBook">
        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="auto"/>
                <ColumnDefinition Width="auto"/>
                <ColumnDefinition Width="auto"/>
                <ColumnDefinition Width="auto"/>
                <ColumnDefinition Width="auto"/>
            </Grid.ColumnDefinitions>
            <!--通讯人姓名、联系方式、工作地点、城市、备注-->
            <TextBlock Grid.Column="0" >
                    通讯人姓名:
                    <Run Text="{Binding name}"/>  
                    <LineBreak/>
                    联系方式:
                    <Run Text="{Binding contact}"/>
                    <LineBreak/>
                    工作地点:
                    <Run Text="{Binding address}"/>
                    <LineBreak/>
                    城市:
                    <Run Text="{Binding city}"/>
                    <LineBreak/>
                    备注:
                    <Run Text="{Binding remark}"/>
                    <LineBreak/>
            </TextBlock>           
        </Grid>
    </DataTemplate>
    </Page.Resources>

列表

<ListView ItemTemplate="{StaticResource xaddressBook}" ItemsSource="{x:Bind view.addressBook,Mode=OneWay}"/>

使用System.Collections.ObjectModel.ObservableCollection来作为list资源。

viewModel

        public System.Collections.ObjectModel.ObservableCollection<caddressBook> addressBook
        {
            set;
            get;
        }
            = new System.Collections.ObjectModel.ObservableCollection<caddressBook>()
        {
                new caddressBook()
                {
                    name ="张三",
                    contact ="1",
                    address ="中国",
                    city =" ",
                    comment =" "
                } ,
                new caddressBook()
                {
                    name ="张三",
                    contact ="1",
                    address ="中国",
                    city =" ",
                    comment =" "
                }
        };

因为想一个名字不是很简单,我就使用contact 不同来认为是不同的

修改addressBook前台会更新,ObservableCollection是包含了INotifyPropertyChanged

        /// <summary>
        /// 修改
        /// </summary>
        public void modify()
        {
            var taddressBook = new caddressBook()
            {
                name = "张三" ,
                contact = "2" ,
                address = "中国" ,
                city = " " ,
                comment = " "
            };
            addressBook.Add(taddressBook);
        }

运行ObservableCollection

点击添加addressBook

代码:https://code.csdn.net/lindexi_gd/lindexi_gd/tree/master/observable_collection

<script type="text/javascript"> $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('<ul/>').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('<li/>').text(i)); }; $numbering.fadeIn(1700); }); }); </script>
分享到:
评论

相关推荐

    win10 uwp 轻量级 MVVM 框架入门 2.1.5.3199 例子

    总结来说,"win10 uwp 轻量级 MVVM 框架入门 2.1.5.3199 例子"提供了一个实际操作的平台,让开发者学习如何在UWP环境中利用MVVM模式进行开发。通过分析和实践这个框架,你将能够更好地理解MVVM的工作原理,以及如何...

    C#实现win10 uwp 右击浮出窗在点击位置

    在Windows 10 UWP应用开发中,常常需要创建一种用户友好的交互方式,即当用户右键点击某个元素时,能在一个特定的位置显示一个浮出菜单(MenuFlyout)。本篇文章将详细介绍如何使用C#实现这样的功能,使得MenuFlyout...

    win8数据绑定

    在C#和XAML中,数据绑定是基于WPF(Windows Presentation Foundation)和UWP(Universal Windows Platform)的数据绑定概念,用于简化UI和业务逻辑之间的通信。XAML(Extensible Application Markup Language)是...

    uwp开发-demoHelloworld源码

    【描述】提到的"一个uwp开发源码,可以移植到一切win10系统"意味着该项目遵循了UWP的跨平台特性,使得开发者能够在不同类型的Windows 10设备上部署和运行同一套代码。UWP是微软为了统一Windows生态而推出的新开发...

    Uwp中的换肤

    依赖属性(DependencyProperty)可以方便地实现UI元素与后台数据的双向绑定,当主题改变时,依赖属性的更改会自动反映到UI上。 5. **代码-behind处理**:在C#代码中,可以编写事件处理程序来监听用户的主题切换操作...

    Xamarin.Forms构建Windows10通用应用程序(UWP)

    使用XAML,开发者可以轻松地定义控件布局、样式和数据绑定。在UWP项目中,Xamarin.Forms的XAML遵循UWP XAML的语法规则,可以利用丰富的UWP控件库,如FlyoutPage、SplitView等,来实现现代化的界面设计。 5. **依赖...

    Windows 10编程:UWP Focus(N之2)

    3. **绑定与数据上下文**:在UWP中,我们可以使用数据绑定将UI控件与C#后台代码中的数据关联起来。数据上下文(DataContext)是实现这一点的关键,它将整个视图与数据模型关联,使得UI更新随着数据的变化自动发生。 ...

    UWP-Demo:UWP桌面应用程序的演示

    在“UWP-Demo”中,可以看到各种XAML控件如按钮、文本框、图像等的用法,以及如何通过数据绑定将UI与后台逻辑关联起来。XAML允许开发者声明式地创建用户界面,提高开发效率。 **3. C#在UWP中的应用** 作为主要的...

    Minimal-UWP-MVVM-CRUD:带有数据服务CRUD的最小MVVM UWP应用

    在数据服务上实现CRUD的最小MVVM UWP应用随着Win 10和Universal Windows应用程序的引入,我想尝试一些新的XAML功能,例如使用x:Bind进行编译时绑定。 首先,我环顾了一个非常简单的通用Windows平台(UWP)示例,该...

    对Windows 10桌面进行编程:UWP Focus(N之9)

    在UWP中,这通常通过数据绑定机制实现,增强了用户界面的动态性和响应性。 "继续在DailyJournal应用程序上进行SoC"指的是遵循单一职责原则(Single Responsibility Principle, SoC)。这意味着每个类或组件应专注于...

    Win32 API大全

    10. **安全与权限**:Win32 API提供了访问控制和安全描述符的管理,例如`CreateMutex`创建互斥体以实现线程同步,`GetSecurityInfo`和`SetSecurityInfo`用于获取和设置对象的安全属性。 Win32 API是一个庞大的接口...

    编程Windows 10桌面:UWP Focus(N之4)

    此外,UWP还提供了丰富的API集,如数据绑定、命令模式、资源管理、样式和模板等,这些都是构建高效且美观的UWP应用所必需的技能。开发者还需要了解如何使用Visual Studio IDE进行调试、测试和发布应用。 总结来说,...

    对Windows 10桌面进行编程:UWP Focus(N之5)

    3. **数据绑定**:利用UWP的数据绑定机制,可以将日记数据模型与PivotItem的内容关联起来,实现数据驱动的界面更新。这通常涉及到定义一个ViewModel类,以及在XAML中设置DataContext。 4. **焦点管理**:在UWP中,...

    developing windows applications c#.pdf

    以下内容将详细介绍Windows 10的通用Windows平台(UWP)的开发,包括但不限于XAML基础、布局设计、用户交互、样式、资源和主题、图形、变换和动画、数据绑定、导航和窗口管理以及动态磁贴和通知等方面的开发技术。...

    含钙的UWP表格验证

    Calcium是一个轻量级的框架,为.NET开发者提供了方便的数据绑定、依赖属性和命令等功能,特别适用于UWP、XAML和MVVM(Model-View-ViewModel)架构。 描述中提到的“同步和异步表单验证”是指在用户输入数据时,应用...

    Windows 8应用程序开发-JavaScript(数据)绑定

    在Windows 8应用程序开发中,JavaScript(数据)绑定是一个关键概念,它允许UI元素与后台数据模型进行直接关联,从而实现动态更新。本教程将深入探讨如何使用WinJS框架进行数据绑定,以便在Windows 8应用中创建更...

Global site tag (gtag.js) - Google Analytics