WPF 多个数据源的实现DEMO

简介:

WPF 多个数据源的实现DEMO,ListView中有个Combox籍贯,ListView的数据来自XML数据源,Combox籍贯来自另一个数据源。

<ListView Height= "262"  Margin= "345,12,12,0"  ItemsSource= "{Binding Source={StaticResource myPerson4},XPath=/PersonF/person}"  VerticalAlignment= "Top"   Name= "listView3" >
        <ListView.Resources>
            <Con:JiGuan x:Key= "JG" />
        </ListView.Resources>
        <ListView.View>
            <GridView>
                <GridViewColumn Header= "编号"  DisplayMemberBinding= "{Binding XPath=ID}"   Width= "100"  />
                <GridViewColumn Header= "姓名"  DisplayMemberBinding= "{Binding XPath=Name}"  Width= "100" />
                <GridViewColumn Header= "年龄"  Width= "100" >
                    <GridViewColumn.CellTemplate>
                        <DataTemplate>
                            <TextBlock Grid.Column= "1"  Text= "{Binding XPath=Age}"  Foreground= "{Binding XPath=Age, Converter={StaticResource BackgroundConverter}}" />
                        </DataTemplate>
                    </GridViewColumn.CellTemplate>
                </GridViewColumn>
                <GridViewColumn Header= "籍贯"   Width= "100" >
                    <GridViewColumn.CellTemplate>
                        <DataTemplate>
                            <ComboBox  DataContext= "{Binding Source={StaticResource JG}}"  Width= "50"   SelectedIndex= "0" >
                                <ItemsControl ItemsSource= "{Binding JGuan}" >
                                    <ItemsControl.ItemTemplate>
                                        <DataTemplate>
                                            <TextBlock Text= "{Binding}" />
                                        </DataTemplate>
                                    </ItemsControl.ItemTemplate>
                                </ItemsControl>
                            </ComboBox>
                        </DataTemplate>
                    </GridViewColumn.CellTemplate>
                </GridViewColumn>
            </GridView>
        </ListView.View>
    </ListView>

资源:

<Window.Resources>
        <Con:BackgroundConverter x:Key= "BackgroundConverter" />
         <XmlDataProvider x:Key= "myPerson4"  Source= "/Person.xml" />
    </Window.Resources>

值转换:

public  class  BackgroundConverter : IValueConverter
  {
      #region IValueConverter Members
 
      public  object  Convert( object  value, Type targetType, object  parameter, System.Globalization.CultureInfo culture)
      {
          Color color = new  Color();
          int  num = int .Parse(value.ToString());
          if  (num > 100)
              color = Colors.Yellow;
          else  if  (num < 50)
              color = Colors.LightGreen;
          else
              color = Colors.LightPink;
          return  new  SolidColorBrush(color);
      }
 
      public  object  ConvertBack( object  value, Type targetType, object  parameter, System.Globalization.CultureInfo culture)
      {
          throw  new  NotImplementedException();
      }
 
      #endregion
  }

籍贯类:  

public  class  JiGuan
{
     private  ObservableCollection< string > _jiguan;
     public  JiGuan()
     {
         _jiguan = new  ObservableCollection< string >();
         _jiguan.Add( "上海" );
         _jiguan.Add( "杭州" );
         _jiguan.Add( "南京" );
         _jiguan.Add( "广州" );
     }
 
     public  ObservableCollection< string > JGuan
     {
         get  { return  new  ObservableCollection< string >(_jiguan); }
         private  set  { }
     }
 
}

  

XML文件

<?xml version= "1.0"  encoding= "utf-8"  ?>
<PersonF xmlns= "" >
   <person Name= "Person1" >
     <ID>1</ID>
     <Name>XiaoA</Name>
     <Age>59</Age>
   </person>
   <person Name= "Person2" >
     <ID>2</ID>
     <Name>XiaoB</Name>
     <Age>29</Age>
   </person>
   <person Name= "Person3" >
     <ID>3</ID>
     <Name>XiaoC</Name>
     <Age>103</Age>
   </person>
   <person Name= "Person4" >
     <ID>4</ID>
     <Name>XiaoD</Name>
     <Age>59</Age>
   </person>
</PersonF>

  效果图:如下图,编号,姓名,年龄,籍贯来自不同的数据源,但是却在同一个ListView中,编号,姓名,年龄来自XML数据,籍贯来自籍贯类。



本文转自Work Hard Work Smart博客园博客,原文链接:http://www.cnblogs.com/linlf03/archive/2011/09/06/2168842.html,如需转载请自行联系原作者

目录
相关文章
|
C#
WPF 界面实现多语言支持 中英文切换 动态加载资源字典
原文:WPF 界面实现多语言支持 中英文切换 动态加载资源字典 1、使用资源字典,首先新建两个字典文件en-us.xaml、zh-cn.xaml。定义中英文的字符串在这里面【注意:添加xmlns:s="clr-namespace:System;assembly=mscorlib】 zh-cn.
2937 0
|
C# 数据可视化 开发工具
WPF实现选项卡效果(1)——使用AvalonDock
原文:WPF实现选项卡效果(1)——使用AvalonDock 简介   公司最近一个项目,软件采用WPF开发,需要实现类似于VS的选项卡(或者是浏览器的选项卡)效果。
2126 0
|
10月前
|
C# 数据库
WPF中DataGrid控件绑定数据源
WPF中DataGrid控件绑定数据源
124 0
|
IDE C# 开发工具
WPF钟表效果实现
中WPF中的RotateTransform实现UI元素的旋转,并模拟钟表的秒针、分针和时针。
1136 0
WPF钟表效果实现
|
IDE 编译器 C#
WPF实现强大的动态公式计算
数据库可以定义表不同列之间的计算公式,进行自动公式计算,但如何实现行上的动态公式计算呢?行由于可以动态扩展,在某些应用场景下将能很好的解决实际问题。本文就探讨一下如何在WPF中实现一种基于行字段的动态公式计算。
999 0
WPF实现强大的动态公式计算
|
网络协议 C# 移动开发
C# WPF上位机实现和下位机TCP通讯
C# WPF上位机实现和下位机TCP通讯下位机使用北京大华程控电源DH1766-1,上位机使用WPF。实现了电压电流实时采集,曲线显示。上午在公司调试成功,手头没有程控电源,使用TCP服务端模拟。昨天写的TCP服务端正好排上用场。
2341 0
|
C#
WPF特效-实现3D足球效果
原文:WPF特效-实现3D足球效果 WPF 实现 3D足球效果,效果图如下:  每个面加载不同贴图。                                                          ...
863 0
|
算法 C# 容器
WPF特效-实现弧形旋转轮播图
原文:WPF特效-实现弧形旋转轮播图        项目遇到,琢磨并实现了循环算法,主要处理循环替换显示问题       (如:12张图组成一个圆弧,但总共有120张图需要呈现,如何在滑动中进行显示块的替换,并毫无卡顿)        处理的自己感觉比较满意,记录一下。
2049 0
|
C#
wpf采用Xps实现文档显示、套打功能
原文:wpf采用Xps实现文档显示、套打功能 近期的一个项目需对数据进行套打,用户要求现场不允许安装office、页面预览显示必须要与文档完全一致,xps文档来对数据进行处理。Wpf的DocumentView 控件可以直接将数据进行显示,xps也是一种开放式的文档,如果我们能够替换里面的标签就最终实现了我们想要的效果。
1737 0
|
C# 开发工具 git
WPF实现选项卡效果(3)——自定义动态添加的AvalonDock选项卡内容
原文:WPF实现选项卡效果(3)——自定义动态添加的AvalonDock选项卡内容 简介   在前面一篇文章里面,我们实现了AvalonDock选项卡的动态添加,但是对于选项卡里面的内容,我们并没有实现任何有用的功能。
1295 0