Я использую C #.Я хочу связать Twoways между Textboxes и источником данных XML.Для этого я написал:
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что привязка будет делать к TextBoxes. - Метод
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)
Но я получил тот же результат.
Кто-нибудь получил что-то подобноеэто работает?
Любые комментарии или предложения приветствуются.