silverlight中Combox绑定数据以及动态绑定默认选定项的用法

在Sliverlight中,经常要用到下拉框Combox,然而Combox的数据绑定却是一件令初学者很头疼的事情。今天就来总结一下下拉框的使用方法:

下面写一个简单的例子吧。先写一个日期的Model,代码如下:

   public class Date
   {
      public string DateName { get; set; }
      public string DateValue { get; set; }
      public Date()
      {
      }
      public Date(string name, string value)
      {
         this.DateName = name;
         this.DateValue = value;
      }
   }

这里就用简单的MVVM模式,再写一个DateViewModel,代码如下:

public class DateViewModel
   {
      public List<Date> Months { get; set; }
      public string  currMonth { get; set; }

      public DateViewModel()
      {
         Months = new List<Date>();
         for (int i = 1; i <= 12; i++)
         {
            Months.Add(new Date(i+"month",i.ToString()));
         }
         currMonth = "3";
      }

   }

在类的构造函数中,初始化所有的月份,以便绑定到前台。到这里后台代码写完了,下面开始绑定下拉框,下面是XAML代码:

<UserControl x:Class="SilverlightMVVM.MainPage"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  xmlns:local="clr-namespace:Silverlight.ViewModel"
  mc:Ignorable="d"
  d:DesignHeight="300" d:DesignWidth="400">
<UserControl.Resources>
  <local:DateViewModel x:Key="DateVM" />
</UserControl.Resources>

<Grid x:Name="LayoutRoot" Background="White" DataContext="{Binding Source={StaticResource DateVM}}">

  <ComboBox ItemsSource="{Binding Months}"
      SelectedValuePath="DateValue"
      DisplayMemberPath="DateName"
      SelectedValue="{Binding currMonth}"
      Height="23"
      Name="comboBox1"
      Width="120" />

</Grid>
</UserControl>

注意代码中标红的地方,xmlns:local="clr-namespace:Silverlight.ViewModel",这里引入命名空间。

然后绑定到Grid的DataContext上面。

DisplayMemberPath   就是下拉框显示的内容

SelectedValuePath    就是下拉框的Value值

SelectedValue          默认选定的项,可根据绑定的值改变

至此,下拉框的绑定就完成了。

 

时间: 2024-08-01 22:19:06

silverlight中Combox绑定数据以及动态绑定默认选定项的用法的相关文章

combox绑定数据后,怎么让它的默认选项为空呢?

问题描述 combox绑定数据后,怎么让它的默认选项为空呢? 解决方案 解决方案二:默认就是空解决方案三:不是啊,我在绑定后,显示的是第一项数据解决方案四:设置默认值,默认为空Load事件里comboBox1.SelectIndex=0;解决方案五:能发代码看看不解决方案六:引用3楼wuyq11的回复: 设置默认值,默认为空Load事件里comboBox1.SelectIndex=0;  他要的显示是为空,不是第一项解决方案七:你可以给它在加一个空值项,然后ComboBox.Text="&quo

GridView中Eval绑定数据只支持255个字符显示啊?

问题描述 <asp:TemplateFieldItemStyle-Width="40px"ItemStyle-HorizontalAlign="Center"><HeaderTemplate>备注</HeaderTemplate><ItemTemplate><%#Eval("EQU_OTHER").ToString()%></ItemTemplate></asp:Tem

对DataList模板中的绑定数据进行再加工

问题是:我用<%# Eval("star")%>成功绑定数据star的数据(star在数据库中是int类型),这时我想重复取出star的数值(1~star), 比如说现在star是5,那么我就是要取出<%# Eval("star")%>中从1~到5的数,下面该怎么做? [方法1]嵌套javascript: <script type="text/javascript"> var strInt = <%# E

三层delphi中 mapx绑定数据的疑问

问题描述 使用ado控件绑定数据表到图层允许没问题,但三层的应用如何搞,有弄过的不一下使用ado时map1.datasets.add(midatasetado,adotable1.recordset,......)因改成了三层应用数据控件换成TClientDataset,怎么也搞不定这块了midatasetado肯定是不合适了,弹出异常,Thespecifiedsourceisnotanadorecordsetobject看文档说添加datasource换成midatasetdelphi比较合适

ListView的Adapter使用(绑定数据) 之 自定义每一项的布局去绑定数据_Android

大家先看第一个例子显示: 这个界面相信大家都看到过的,这次比上一个例子多的是ListView 的每一项绑定的是不再是单纯的一个字符串了,ListView 的每一个条目我们需要显示两个信息,编号和姓名.可以看到,我们绑定了十条数据,用了一个for 循环,每一条绑定的时候创建一个HashMap,然后往里面放数据,放的数据有相对应的key, 即id,name,到时候我们取数据的时候就根据这个key 找到我们放进去的数据,有点类似与键值对的意思,不知道这样解释大家明白不明白. 贴上源代码,然后接下来讲解

asp.net中GridView绑定数据时进行Fromat

asp.net|数据 原来我们在用DataGrid时绑定一个段比如dateandtime案以下方式绑定就可以了    <asp:BoundColumn                HeaderText="日期"                DataField="dateandtime"                DataFormatString="{0:yyyy-MM-dd}"                 >但不幸的是刚刚

ubuntu 10.04加windows双系统中如何把Windows设为默认启动项

安装了WindowsXP和Ubuntu10.04双系统后(后装的Ubuntu),系统默认启动的操作系统是Ununtu 10.04,想更改为默认启动WindowsXP,参照以前版本的Ubuntu,只需要修改"/boot/grub/menu.lst "启动操作系统列表文件中的"default X"一行即可. 但是在Ubuntu 10.04中,并没有menu.lst文件.到Ubuntu wiki上查找相关帮助,也没有结果.猜测可能Ubuntu 10.04可能改变了启动操作

sql语句中删除表数据drop、truncate和delete的用法

  虽然绿色资源网小编不建议大家去用命令删除数据库表中的东西,但是这些删除命令总有用的着的地方. 说到删除表数据的关键字,大家记得最多的可能就是delete了 然而我们做数据库开发,读取数据库数据.对另外的两兄弟用得就比较少了 现在来介绍另外两个兄弟,都是删除表数据的,其实也是很容易理解的 老大------drop 出没场合:drop table tb --tb表示数据表的名字,下同 绝招:删除内容和定义,释放空间.简单来说就是把整个表去掉.以后要新增数据是不可能的,除非新增一个表, 例如:一个

在Silverlight中动态绑定页面报表(PageReport)的数据源

ActiveReports 7中引入了一种新的报表模型--PageReport(页面布局报表),这种报表模型又细分了两种具体显示形式: o    固定页面布局报表模型(FPL)是ActiveReports 7中首创的一种 .NET报表模型,通过这种模型可以非常方便地设计出拥有复杂格式的报表模板.您只需定义好页面大小,然后以一种可视化的方式添加需要的控件并设置数据填充方式,剩下的工作将由报表引擎自动完成. o    连续页面布局报表模型(CPL)主要通过数据区域来控制报表的布局,并能自动实现数据分