Silverlight 4.0 将组合框SelectedValue绑定到页面数据值

Silverlight 4.0 将组合框SelectedValue绑定到页面数据值,silverlight-4.0,Silverlight 4.0,BASE=C、.Net、MVC、Silverlight 4视图 我已经看过了对类似问题的反应,但我仍然无法让它发挥作用。我想这并不像我最初想的那么简单 我有一个类AgreementInfo,其中包含ProjectPropositer属性 . . . public Responsible_Person ProjectProponent { get; set; } . . . 哪一类是负责人 . . . public string LASTNAME { get { return m

BASE=C、.Net、MVC、Silverlight 4视图

我已经看过了对类似问题的反应,但我仍然无法让它发挥作用。我想这并不像我最初想的那么简单

我有一个类AgreementInfo,其中包含ProjectPropositer属性

. . . 
public Responsible_Person ProjectProponent { get; set; }
. . . 
哪一类是负责人

   . . .
   public string LASTNAME { get { return m_last; } set { m_last = value; } }
   public string USERNAME { get { return m_uname; } set { m_uname = value; } }
   public string FIRSTNAME { get { return m_first; } set { m_first = value; } }
   public string FullName { get { return m_first + " " + m_last; } }
   . . .
当SL控件加载时,它通过json从控制器获取AgreementInfo对象。此对象被设置为LayoutRoot的DataContext

然后,我有一个组合框,它的ItemSource被设置为一个列表。目前,它是虚拟数据硬连线在像

   . . .
   List<Responsible_Person> items = new List<Responsible_Person>();

   Responsible_Person newguy = new Responsible_Person();
   newguy.FIRSTNAME = "Jane"; newguy.LASTNAME = "Dough"; newguy.USERNAME = "jdough"; newguy.RP_ROLES = dummyroles;
   items.Add(newguy);
   . . . 

   cboProjectProponent.ItemsSource = items;
   cboProjectProponent.DisplayMemberPath = "FullName";
最终,该列表将从服务中获得

问题: 在我的XAML中

. . .
<TextBlock x:Name="tbktest" Text="{Binding ProjectProponent.FullName}" />
<ComboBox x:Name="cboProjectProponent" SelectedValue="{Binding ProjectProponent.FullName, Mode=TwoWay}" />
. . . 

我猜我在文本块中从AgreementInfo中看到了正确的名称,但是没有选择下拉列表中显示的相同名称,因为我绑定到了错误的对象。我想要的是,组合框中加载了列表中的值,而AgreementInfo中的ProjectPropositer是所选项目。

绑定之前是否设置了ItemSource?如果绑定发生在设置ItemSource之前,则SelectedValue绑定将不起作用。我以前见过这种类型的时间问题。不能通过XAML绑定而不是在代码中设置ItemSource吗

我注意到您也没有设置组合的SelectedValuePath属性。如果没有此选项,您将尝试为ProjectInitiator.FullName指定一名负责人。查看本文,了解所有ComboBox控件属性的详细说明: