Как привязать TextBox к XML-файлу (с пространством имен) - PullRequest
5 голосов
/ 17 мая 2011

Я использую 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)

Но я получил тот же результат.

Кто-нибудь получил что-то подобноеэто работает?

Любые комментарии или предложения приветствуются.

1 Ответ

0 голосов
/ 31 мая 2011

Вы пробовали что-то подобное?

<XmlDataProvider x:Key="dataProvider" XPath="RootElement" Source="XMLFile1.xml"/>
...

<TextBox Text="{Binding Source={StaticResource dataProvider}, XPath=//ChildElement/@totalConcept }" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...