本文主要示例如何在xaml文件中操作用户使用C#代码自定义的类。主要步骤如下:

  1、在VS2008中创建一个新项目CustomTypesInXaml,在此项目下我们新建两个类,一个是Client类,一个是AsiaClients类。两个类的代码分别如下:

  Client.cs代码:

using System;using System.Net;using System.Windows;using System.Windows.Controls;using System.Windows.Documents;using System.Windows.Ink;using System.Windows.Input;using System.Windows.Media;using System.Windows.Media.Animation;using System.Windows.Shapes;

namespace CustomTypesInXaml{    public class Client    {  //Client对象表示一个Client人的属性        public Client()        {

        }

        public string FirstName { get; set; }        public string LastName { get; set; }        public string Age { get; set; }    }}

AsiaClient.cs代码,此类将会用到我们前面定义的Client类,是Client类的列表

using System;using System.Net;using System.Windows;using System.Windows.Controls;using System.Windows.Documents;using System.Windows.Ink;using System.Windows.Input;using System.Windows.Media;using System.Windows.Media.Animation;using System.Windows.Shapes;using System.Collections.Generic; //需要添加此空间

namespace CustomTypesInXaml{    public class AsiaClients    {        public AsiaClients()        {            TheAsiaClient = new List<Client>();        }

      public   List<Client> TheAsiaClient { get; set; } }}

  2、在Page.xaml文件中我们需要做如下工作。

  (1)、在xaml头部引入 xmlns:ClientType="clr-namespace:CustomTypesInXaml",这样我们才能够在page.xaml文件中使用我们前面C#定义的两个类。

  (2)、创建UserControl.Resources段

    <UserControl.Resources>        <ClientType:AsiaClients x:Key="MyAsianClients">            <ClientType:AsiaClients.TheAsiaClient>                <ClientType:Client FirstName="Joe" LastName="Zhou" Age="32"/>                <ClientType:Client FirstName="David" LastName="Wang" Age="33"/>                <ClientType:Client FirstName="Josh" LastName="Li" Age="28"/>            </ClientType:AsiaClients.TheAsiaClient>        </ClientType:AsiaClients>    </UserControl.Resources>

  在此段中我们引用了前面使用C#代码定义的两个类并在此处完成对此两个类的初始化赋值。

  (3)、在UI部分完成界面设计和数据绑定,在此我们设计了一个List,并把它我我们在上面创建的数据进行绑定显示,此段代码如下:

    <Grid x:Name="LayoutRoot" Background="White">        <ListBox             DataContext="{StaticResource MyAsianClients }"            ItemsSource="{Binding TheAsiaClient}"     >            <ListBox.ItemTemplate>                          <DataTemplate>                    <StackPanel Orientation="Horizontal" >                       <TextBlock Text="{Binding FirstName}" Margin="5,0,0,0" ></TextBlock>                       <TextBlock Text="{Binding LastName}" Margin="5,0,0,0" ></TextBlock>                       <TextBlock Text="{Binding Age}" Margin="5,0,0,0" ></TextBlock>                    </StackPanel>                </DataTemplate>            </ListBox.ItemTemplate>        </ListBox>    </Grid>

Page.xaml文件的全部代码如下:

 <UserControl x:Class="CustomTypesInXaml.Page"    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"     xmlns:ClientType="clr-namespace:CustomTypesInXaml"    Width="400" Height="300">    <UserControl.Resources>        <ClientType:AsiaClients x:Key="MyAsianClients">            <ClientType:AsiaClients.TheAsiaClient>                <ClientType:Client FirstName="Joe" LastName="Zhou" Age="32"/>                <ClientType:Client FirstName="David" LastName="Wang" Age="33"/>                <ClientType:Client FirstName="Josh" LastName="Li" Age="28"/>            </ClientType:AsiaClients.TheAsiaClient>        </ClientType:AsiaClients>    </UserControl.Resources>    <Grid x:Name="LayoutRoot" Background="White">        <ListBox             DataContext="{StaticResource MyAsianClients }"            ItemsSource="{Binding TheAsiaClient}"     >            <ListBox.ItemTemplate>                          <DataTemplate>                    <StackPanel Orientation="Horizontal" >                       <TextBlock Text="{Binding FirstName}" Margin="5,0,0,0" ></TextBlock>                       <TextBlock Text="{Binding LastName}" Margin="5,0,0,0" ></TextBlock>                       <TextBlock Text="{Binding Age}" Margin="5,0,0,0" ></TextBlock>                    </StackPanel>                </DataTemplate>            </ListBox.ItemTemplate>        </ListBox>    </Grid></UserControl>

  在此,我们无需在Page.xaml.cs后台写任何代码即完成了在xmal文件中初始化、引用和显示我们用C#自定义类的工作。

转载于:https://www.cnblogs.com/arongbest/archive/2011/09/19/2181094.html

如何在xaml文件中操作用户在后台代码定义的类(1)相关推荐

  1. SilverLight学习笔记--如何在xaml文件中操作用户在后台代码定义的类(2)--示例篇:创建一个登录控件(原创)(转载本文请注明出处)...

    本文将示例如何运用前篇所写知识来建立一个用户自定义的登录控件.此控件界面非常简单,主要涉及的知识点是:   如何创建用户控件(包括对此控件的自定义事件和属性的编写,此处我们将创建一个名为LoginBo ...

  2. java pdf添加透明水印_如何在PDF文件中添加透明水印

    原标题:如何在PDF文件中添加透明水印 有些文件添加水印,但是又不想水印影响文件的使用有时候会设置透明水印,那么PDF怎么设置透明水印呢,应该有很多的小伙伴们都很好奇应该怎么做吧,接下来就为大家分享一 ...

  3. vanilla_如何在Vanilla JavaScript中操作DOM

    vanilla by carlos da costa 通过卡洛斯·达·科斯塔 如何在Vanilla JavaScript中操作DOM (How to manipulate the DOM in Van ...

  4. 如何在Python Django中处理用户身份验证

    by Mohammed Subhan Khan 由Mohammed Subhan Khan 如何在Python Django中处理用户身份验证 (How to handle user authenti ...

  5. java 字符串查找程序_java-如何在JAR文件中搜索字符串

    java-如何在JAR文件中搜索字符串 我的应用程序基于Java EE构建. 我在此应用程序中大约有50个罐子. 是否可以搜索特定的关键字(实际上我想搜索关键字BEGIN REQUEST)? user ...

  6. 如何在pdf文件中编辑页眉页脚

    如何在pdf文件中编辑页眉页脚?要对pdf文件进行编辑的话是需要使用专业的pdf编辑软件才能进行的.那pdf文件中的编辑问题和在pdf文件添加页眉页脚应该如何处理呢?下面小编就给大家分享一下方法. 附 ...

  7. 如何在PDF文件中编辑文本的大小?

    PDF文件可以编辑文本的大小吗?如何在PDF文件中编辑文本的大小?想要编辑PDF文本,首先需要借助专业的PDF编辑器,推荐大家使用金闪PDF编辑器,一款手机和电脑都可以用的PDF工具. 如何在PDF文 ...

  8. 如何在Windows 8 中关闭用户账户控制(UAC)

    如何在Windows 8 中关闭用户账户控制(UAC) 适用范围: Windows 8 操作步骤: 1.登陆 Windows 8 Metro 界面,单击左下角桌面图标,如下图: 2.登录桌面后,使用组 ...

  9. js html保存json,如何在json文件中存储jQuery或javascript变量?

    我可以知道有没有机会将jquery变量保存在json文件中?提前致谢.如何在json文件中存储jQuery或javascript变量? 我: var image='/test/test.png'; 我 ...

最新文章

  1. 京东千万并发 API 网关实践之路!
  2. mysql xid原理_MySQL数据库分布式事务XA实现原理分析
  3. SpringBoot 发送邮件功能实现
  4. python3最好的书籍推荐-推荐几本Python3相关书籍?最好分一下基础、进阶、高级...
  5. ubuntu虚拟机apt报错:No module named ‘uaclient‘(替换所有的python3为/usr/bin/python3)xftp、xshell不能连接
  6. 作为网站管理,你的性能监测工作如何开展?
  7. esrgan_ESRGAN: Enhanced Super-Resolution Generative Adversarial Networks【阅读笔记】
  8. LeetCode 1893. 检查是否区域内所有整数都被覆盖(差分)
  9. 共话5G产业创新 5G+视频彩铃产业联盟成立
  10. Java基础学习总结(145)——Java SPI(Service Provider Interface)简介
  11. cognos 7在IE7中不显示左边的树形菜单的解决
  12. 哦,指针问题的见解啊
  13. 如何拯救「大泥球」架构?人人车Android客户端架构演进实录
  14. jQuery使用之(二)设置元素的样式
  15. vba九九乘法表代码_VBA程序控制结构示例-九九乘法表
  16. 利用NSA方程式工具—“永恒之蓝”攻陷一台计算(MS17-010)
  17. delphi获取本机IP地址
  18. C++-灰度图上色GrayToColor
  19. 小成开发日记----物联网项目LoveTv实现web网页传输数据到单片机-表白女朋友(技术栈涉及web前端,php后端,c/c++ socket,嵌入式前后端)
  20. 薛老师软考高项学员:2016年4月11日作业

热门文章

  1. 现场|除了谷歌AI中国中心成立的重磅消息,谷歌开发者大会现场还有这些
  2. AI就是“大数据+机器学习”?答案是否定的
  3. Python 之 Numpy (五)合并
  4. ACL,NAACL,EMNLP,IJCNLP以及ACL、EMNLP2021论文模板
  5. windows如何禁止onenote自启
  6. 量化集体行为特刊:信息论为量化集体性提供形式化框架
  7. 数字孪生技术,让酷炫的智慧城市不再遥不可及
  8. IBM人工智能将“掌舵”全球首个跨大西洋自主驾驶船舶
  9. 关于现在人工智能预测的一些冷水
  10. 辞退了一名 2 年工作经验的前端工程师