【发布时间】:2010-12-15 03:12:28
【问题描述】:
我正在尝试在无法访问 DataContext 的网格列的标题中进行绑定。为了授予它访问权限,我使用了此处描述的 DataContextProxy:http://weblogs.asp.net/dwahlin/archive/2009/08/20/creating-a-silverlight-datacontext-proxy-to-simplify-data-binding-in-nested-controls.aspx
这是我的 ViewModel 的简化版本:
public class ViewModel : INotifyPropertyChanged
{
private String _myString;
private ObservableCollection<TabItemViewModel> _tabItems;
public String MyString { blah... }
public ObservableCollection<TabItemViewModel> TabItems {blah... }
}
它适用于使用 XAML 访问 MyString,如下所示:
<TextBlock Text="{Binding Source={StaticResource DataContextProxy}, Path=DataSource.MyString}"/>
但我不确定如何让它指向 TabItemViewModels 的可观察集合内的 ErrorHeading...
public class TabItemViewModel : INotifyPropertyChanged
{
private string _errorHeading;
public string ErrorHeading
{
get { return _errorHeading; }
set
{
_errorHeading = value;
RaisePropertyChanged("ErrorHeading");
}
}
}
我试过这样:
<TextBlock Text="{Binding Source={StaticResource DataContextProxy}, Path=DataSource.TabItems.ErrorHeading}"/>
但我认为您不能像这样深入研究 ObservableCollection - 我什至不确定它如何知道要查看集合中的哪个元素。
【问题讨论】:
标签: silverlight xaml