我使用C#。 我想在Textboxes和XML数据源之间进行Twoways绑定。为了达到这个目的,我写了这个:
1 Binding source = new Binding();
2
3 // object ddd = XmlManager.Instance.CreateAttributeOrElement(XPath);
4 source.Path =
5 new PropertyPath(
6 string.Format("(XmlManager.Instance.CreateAttributeOrElement({0}))", XPath));
7 source.Mode = BindingMode.TwoWay;
8
9 UIElementos.UiTexto textoCampo = this as UIElementos.UiTexto;
10 textoCampo.elementoTexto.SetBinding(TextBox.TextProperty, source);
其中:
XPath = "dummyns/@totalConcept"
XmlManager.Instance.CreateAttributeOrElement
在XML文档中创建属性,绑定将对TextBox进行。CreateAttributeOrElement
对象的XMLManager
方法返回如下:
totalConcept=""
有一条注释行可以创建属性。另一种方法是将它隐含在PropertyPath
的实例化行中。当执行任何一种方法时,它会生成一个XML文档,如下所示:
<cna:dummyns xmlns:cna=\"http://tempuri.org/XMLSchema.xsd\" totalConcept=\"\" />
但是当我为Textbox
分配一个值时,我会在输出窗口中看到它:
System.Windows.Data Warning: 78 : BindingExpression (hash=3146959): TransferValue - got raw value {DependencyProperty.UnsetValue}
System.Windows.Data Warning: 86 : BindingExpression (hash=3146959): TransferValue - using fallback/default value ''
System.Windows.Data Warning: 87 : BindingExpression (hash=3146959): TransferValue - using final value ''
所以Bind不工作...... 在第6行,我也尝试过:
string.Format("XmlManager.Instancia.declaracion.Root.Attribute[\"{0}\"].Value", XPath)
但我得到了同样的结果。
有人有类似的工作吗?
欢迎任何意见或建议。
答案 0 :(得分:0)
你尝试过这样的事吗?
<XmlDataProvider x:Key="dataProvider" XPath="RootElement" Source="XMLFile1.xml"/>
...
<TextBox Text="{Binding Source={StaticResource dataProvider}, XPath=//ChildElement/@totalConcept }" />