将XamDataGrid绑定到MVVM中的XmlDataProvider

时间:2013-06-06 19:45:50

标签: wpf mvvm infragistics xamdatagrid xmldataprovider

我无法将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方式。

This solution似乎不适用于XamDataGrid。

1 个答案:

答案 0 :(得分:1)

这有效:

<igDP:XamDataGrid DataContext="{Binding provider}" DataSource="{Binding XPath=Row, Mode=OneWay}" />

另外,我最初错过了以下内容:

private set
{
    _provider = value;
    OnPropertyChanged("provider");
}