Привязка XamDataGrid к XmlDataProvider в MVVM
Я не могу связать XamDataGrid
для XmlDataProvider
собственность в моем проекте в стиле MVVM.
Я получаю строку XML из вызова WebService, создаю 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.
1 ответ
Решение
Это сработало:
<igDP:XamDataGrid DataContext="{Binding provider}" DataSource="{Binding XPath=Row, Mode=OneWay}" />
Кроме того, мне изначально не хватало следующего:
private set
{
_provider = value;
OnPropertyChanged("provider");
}