C# 将选定的XML内容绑定到文本框
应打开XML文件,元素应显示在可选择单个元素的C# 将选定的XML内容绑定到文本框,c#,wpf,xaml,textbox,C#,Wpf,Xaml,Textbox,应打开XML文件,元素应显示在可选择单个元素的列表框中。所选元素应显示在可更改的文本框中 我设法在列表框中打开并显示了XML文件。但是,如何在2TextBoxes中显示所选的XML内容呢 下面是XML文件的内容 <Inventory xmlns=""> <Books> <Book ISBN="0-7356-0562-9" Stock="in" Number="9"> <Title>XML in Act
列表框中。所选元素应显示在可更改的文本框中
我设法在列表框中打开并显示了XML文件。但是,如何在2TextBox
es中显示所选的XML内容呢
下面是XML文件的内容
<Inventory xmlns="">
<Books>
<Book ISBN="0-7356-0562-9" Stock="in" Number="9">
<Title>XML in Action</Title>
<Summary>XML Web Technology</Summary>
</Book>
<Book ISBN="0-7356-1370-2" Stock="in" Number="8">
<Title>Programming Microsoft Windows With C#</Title>
<Summary>C# Programming using the .NET Framework</Summary>
</Book>
<Book ISBN="0-7356-1288-9" Stock="out" Number="7">
<Title>Inside C#</Title>
<Summary>C# Language Programming</Summary>
</Book>
<Book ISBN="0-7356-1377-X" Stock="in" Number="5">
<Title>Introducing Microsoft .NET</Title>
<Summary>Overview of .NET Technology</Summary>
</Book>
<Book ISBN="0-7356-1448-2" Stock="out" Number="4">
<Title>Microsoft C# Language Specifications</Title>
<Summary>The C# language definition</Summary>
</Book>
</Books>
</Inventory>
XML在起作用
XML-Web技术
用C语言编程microsoftwindows#
使用.NET框架进行C#编程
内C#
C语言编程
介绍微软.NET
NET技术概述
Microsoft C#语言规范
C语言定义
下面是MainWindow.xaml的内容
<?xml version="1.0" encoding="utf-8"?>
<Window
x:Class="XML_View_Edit.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow"
Width="500"
Height="200">
<Window.Resources>
<XmlDataProvider x:Key="InventoryData"
XPath="Inventory/Books"
Source="Data.xml"/>
</Window.Resources>
<Grid>
<Grid.RowDefinitions>
<RowDefinition
Height="100" />
<RowDefinition />
</Grid.RowDefinitions>
<ListBox
Grid.Row="0"
Name="listBox1" >
<ListBox.ItemsSource>
<Binding Source="{StaticResource InventoryData}" XPath="Book"/>
</ListBox.ItemsSource>
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text = "{Binding XPath=Title}" />
<TextBlock Text= " - " />
<TextBlock Text = "{Binding XPath=Summary}" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
<Grid
Grid.Row="1"
DataContext="listBox1.SelectedItem">
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition
Width="70" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Label
Content="Title"
Grid.Row="0"
Grid.Column="0"
Name="label_title" />
<Label
Content="Summary"
Grid.Row="1"
Grid.Column="0"
Name="label_summary" />
<TextBox
Grid.Column="1"
Name="textbox_title"
Grid.Row="0" />
<TextBox
Grid.Column="1"
Name="textbox_summary"
Grid.Row="1" />
</Grid>
</Grid>
</Window>
所选书籍的标题和摘要应显示在2文本框中,用户可以在其中更改每个值。大致如下:
- 将2
TextBox
es放在容器C1
- 将
C1.DataContext
绑定到ListBox1.SelectedItem
我不确定在ListBox1
绑定中XPath=“*”
会给出什么结果。您可能需要以下内容:
<Binding Source="{StaticResource InventoryData}" XPath="@ISBN"/>
试试看
编辑2:
让我们修复内部网格的绑定:
DataContext="{Binding ElementName=listBox1, Path=SelectedItem}"
大致:
- 将2
TextBox
es放在容器C1
- 将
C1.DataContext
绑定到ListBox1.SelectedItem
我不确定在ListBox1
绑定中XPath=“*”
会给出什么结果。您可能需要以下内容:
<Binding Source="{StaticResource InventoryData}" XPath="@ISBN"/>
试试看
编辑2:
让我们修复内部网格的绑定:
DataContext="{Binding ElementName=listBox1, Path=SelectedItem}"
请尝试以下操作:
<ListBox
Grid.Row="0"
Name="listBox1" >
<ListBox.ItemsSource>
<Binding Source="{StaticResource InventoryData}" XPath="*"/>
</ListBox.ItemsSource>
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text = "{Binding XPath=Title}">
<TextBlock Text = "{Binding XPath=Summary}">
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
尝试以下操作:
<ListBox
Grid.Row="0"
Name="listBox1" >
<ListBox.ItemsSource>
<Binding Source="{StaticResource InventoryData}" XPath="*"/>
</ListBox.ItemsSource>
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text = "{Binding XPath=Title}">
<TextBlock Text = "{Binding XPath=Summary}">
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
两个文本框位于一个元素中。你能添加一些代码片段来解释一下吗?你应该把它贴出来的。那么,什么是有效的,什么是无效的?为方框发布XAML。和网格。好多了。我将扩展我的答案。两个文本框在一个元素中。你能添加一些代码片段来解释一下吗?你应该把它贴出来的。那么,什么是有效的,什么是无效的?为方框发布XAML。和网格。好多了。我会扩展我的答案。我已经试过你的密码了。但是这些文本块显示的方式/位置?似乎“”不起作用,其中->设置为datatemplete。为什么不显示->因为XPath=不起作用。您可以尝试XPath=“Book”而不是XPath=“*”吗?我已更改为XPath=“Book”,但文本框中没有显示任何内容。您可以从输出窗口显示绑定错误。没有显示任何错误,但在这里您可以看到整个代码。也许你可以在那里找到错误。我已经试过你的代码了。但是这些文本块显示的方式/位置?似乎“”不起作用,其中->设置为datatemplete。为什么不显示->因为XPath=不起作用。您可以尝试XPath=“Book”而不是XPath=“*”吗?我已更改为XPath=“Book”,但文本框中没有显示任何内容。您可以从输出窗口显示绑定错误。没有显示任何错误,但在这里您可以看到整个代码。也许你可以在那里找到错误。