0

在下面的代码中,ListBox 填充了 XML 文件中的颜色名称,但奇怪的是这些名称没有出现在 TextBox 中。

但是,如果将文本框绑定到静态“lbColor2”,这些名称就会出现。

那么,当它们来自 XML 源时,这些名称可能有什么不同,这使得它们不会被传递呢?

<StackPanel>
    <StackPanel.Resources>
        <XmlDataProvider x:Key="ExternalColors" Source="App_Data/main.xml" XPath="/colors"/>
    </StackPanel.Resources>
    <TextBlock Text="Colors:"/>
    <ListBox Name="lbColor" IsSynchronizedWithCurrentItem="True" ItemsSource="{Binding Source={StaticResource ExternalColors}, XPath=color/@name}"/>
    <ListBox Name="lbColor2">
        <ListBoxItem>Red</ListBoxItem>
        <ListBoxItem>Orange</ListBoxItem>
        <ListBoxItem>Cyan</ListBoxItem>
    </ListBox>
    <TextBlock Text="You selected color:"/>
    <TextBox
        Text="{Binding ElementName=lbColor, Path=SelectedItem.Content}"
        >
    </TextBox>
</StackPanel>

这是 XML 文件:

<?xml version="1.0" encoding="utf-8" ?>
<colors>
  <color name="Pink"/>
  <color name="Cyan"/>
  <color name="LightBlue"/>
  <color name="LightGreen"/>
  <color name="Another One"/>
</colors>
4

1 回答 1

1

您已绑定TextBoxto SelectedItem.Content,但XmlAttribute没有名为 的属性Content。改变这个,你会没事的:

<TextBox Text="{Binding ElementName=lbColor, Path=SelectedItem.Value}"/>
于 2009-01-23T15:32:39.423 回答