我无法将XamDataGrid
绑定到我的MVVM风格项目中的XmlDataProvider
属性。
我从WebService调用中获得XML字符串,创建XmlDataProvider,然后尝试将其绑定到XamDataGrid。XmlDataProvider正在被正确初始化。只是绑定部分出了问题。
View.xaml
<igDP:XamDataGrid DataSource="{Binding Source=provider, XPath=Row, Mode=OneWay}" />
ViewModel.cs
public XmlDataProvider provider { get; private set; }
private void method()
{
string xmlString = webservice.runQuery();
// prepare xml
XmlDocument doc = new XmlDocument();
doc.LoadXml(xmlString);
provider = new XmlDataProvider();
if (provider != null)
{
provider.Document = doc;
provider.XPath = "/Results";
}
}
示例xml字符串
<Results>
<Row>
<! -- my data -->
</Row>
<Row>
<! -- my data -->
</Row>
</Results>
通过遵循示例Infragistics代码,我能够在代码隐藏的方式下轻松地做到这一点。但是,这是MVVM的方式,我有困难。
这个解决方案似乎不适合XamDataGrid
成功了:
<igDP:XamDataGrid DataContext="{Binding provider}" DataSource="{Binding XPath=Row, Mode=OneWay}" />
另外,我最初遗漏了以下内容:
private set
{
_provider = value;
OnPropertyChanged("provider");
}