我有一个模型
private XmlDataProvider _xmlProvider;
public XmlDataProvider XmlProvider
{
get { return _xmlProvider; }
set { _xmlProvider = value; OnPropertyChanged("XmlProvider"); }
}
在模型构造函数中,我读取了一个 xml 文件
var doc = new System.Xml.XmlDocument();
doc.Load("books.xml");
XmlProvider = new XmlDataProvider()
{
Document = doc,
XPath = @"/root"
};
xml 文件只有一个根和 1 个元素
<proba author="probaauthor"/>
在视图模型中,我参考了模型
private Model _model;
public Model Model
{
get { return _model; }
set
{
_model = value;
OnPropertyChanged("Model");
}
}
在视图中:
xmlns:localMvvmxml="clr-namespace:MvvmSamples.Mvvm.SimpleXml"
<Grid.Resources>
<localMvvmxml:ViewModel x:Key="MyXmlProvider"/>
在下面我有一个带有文本框的堆栈面板
<StackPanel Orientation="Horizontal" DataContext="{StaticResource MyXmlProvider}" Margin="5">
<TextBox Text="{Binding XPath=/root/proba/@author}" Width="113"></TextBox>
当然它不起作用,因为我无法联系到提供商。那么在TextBox Binding中写什么呢?
谢谢。查理