![]() |
![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() |
| Welcome to Windows Vista Forums. Our forum is dedicated to helping you find solutions with any problems, errors or issues you are experiencing with Windows Vista. The Vista forum also covers news and updates and has an extensive Windows Vista tutorial section that covers a wide range of tips and tricks. |
| |||||||
![]() |
| |
| | #1 (permalink) |
| Guest | wpf xml twoway data binding problem? I am trying to link to some simple xml data in a local file... <dataroot xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <DisplayName>Line Rate</DisplayName> <Location>Line test change</Location> </dataroot> I have tried a couple ways, but right now have this in the xaml: <Window.Resources> <XmlDataProvider x:Key="datarootDS" Source="C:\demo\test.xml" d:IsDataSource="True"/> </Window.Resources> <Window.DataContext> <Binding Mode="TwoWay" Source="{StaticResource datarootDS}" XPath="/dataroot" /> </Window.DataContext> then the control looks like: <TextBox Margin="0,0,0,0" Grid.Column="1" Text="{Binding Mode=TwoWay, UpdateSourceTrigger=LostFocus, XPath=/dataroot/Location}" TextWrapping="Wrap" HorizontalAlignment="Stretch" TextChanged="OnTextBoxChanged"/> I get data from the xml to the control just fine on startup, but it doesn't save changes from the control back to the xml file. am i missing something in the link back to the xml file? i have also tried the explicit trigger and manually calling the updatesource function but it still doesn't get written back to the file. |
My System Specs![]() |
| | #2 (permalink) |
| Guest | RE: wpf xml twoway data binding problem? Hi Dave, When using the TwoWay binding mode, data binding does update the data in the XmlDataProvider if the bound TextBox's text is changed. But data binding doesn't save the changes back to the local xml file. To save changes back to the local xml file, you can get the XmlDocument object representing the xml file and call the Save method to save the changes to the xml file. You can do this work in the TextChanged event handler of the TextBox. For example: private void textBox1_TextChanged(object sender, TextChangedEventArgs e) { XmlDataProvider provider = (XmlDataProvider)this.FindResource("datarootDS"); provider.Document.Save(@"C:\demo\test.xml"); } Hope this helps. If you have any question, please feel free to let me know. Sincerely, Linda Liu Microsoft Online Community Support Delighting our customers is our #1 priority. We welcome your comments and suggestions about how we can improve the support we provide to you. Please feel free to let my manager know what you think of the level of service provided. You can send feedback directly to my manager at: msdnmg@xxxxxx. ================================================== Get notification to my posts through email? Please refer to http://msdn.microsoft.com/subscripti...ult.aspx#notif ications. Note: The MSDN Managed Newsgroup support offering is for non-urgent issues where an initial response from the community or a Microsoft Support Engineer within 1 business day is acceptable. Please note that each follow up response may take approximately 2 business days as the support professional working with you may need further investigation to reach the most efficient resolution. The offering is not appropriate for situations that require urgent, real-time or phone-based interactions or complex project analysis and dump analysis issues. Issues of this nature are best handled working with a dedicated Microsoft Support Engineer by contacting Microsoft Customer Support Services (CSS) at http://msdn.microsoft.com/subscripti...t/default.aspx. ================================================== This posting is provided "AS IS" with no warranties, and confers no rights. |
My System Specs![]() |
| | #3 (permalink) |
| Guest | RE: wpf xml twoway data binding problem? "Linda Liu[MSFT]" wrote: Quote: > Hi Dave, > > When using the TwoWay binding mode, data binding does update the data in > the XmlDataProvider if the bound TextBox's text is changed. But data > binding doesn't save the changes back to the local xml file. > > To save changes back to the local xml file, you can get the XmlDocument > object representing the xml file and call the Save method to save the > changes to the xml file. You can do this work in the TextChanged event > handler of the TextBox. For example: > > private void textBox1_TextChanged(object sender, TextChangedEventArgs e) > { > XmlDataProvider provider = > (XmlDataProvider)this.FindResource("datarootDS"); > provider.Document.Save(@"C:\demo\test.xml"); > } > > Hope this helps. > If you have any question, please feel free to let me know. > > Sincerely, > Linda Liu > Microsoft Online Community Support > It would be good if the help said something like this and if there was an example that pointed out the use of the xml document as part of the databinding. When doing data binding with expression blend it 'looks' like you are binding directly to the xml file. I did finally change the binding to use the xml to linq xelement as a data source and manually read and saved the file when I wanted to from code. |
My System Specs![]() |
![]() |
| Thread Tools | |
| |