Silverlight 4.0 将组合框SelectedValue绑定到页面数据值
BASE=C、.Net、MVC、Silverlight 4视图 我已经看过了对类似问题的反应,但我仍然无法让它发挥作用。我想这并不像我最初想的那么简单 我有一个类AgreementInfo,其中包含ProjectPropositer属性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
. . .
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控件属性的详细说明: