Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xaml 带有两个ItemsSource和DataTemplate的ListBox_Xaml_Xpath_Data Binding_Listbox_Xmldataprovider - Fatal编程技术网

Xaml 带有两个ItemsSource和DataTemplate的ListBox

Xaml 带有两个ItemsSource和DataTemplate的ListBox,xaml,xpath,data-binding,listbox,xmldataprovider,Xaml,Xpath,Data Binding,Listbox,Xmldataprovider,我相信这很简单,但我没有找到解决办法。如何使用一个列表框绑定到数据源中的两个数组 以下是数据示例: <XmlDataProvider x:Key="ConfigurationData" XPath="Configuration/Component"> <x:XData> <Configuration xmlns=""> <Component ID="2252371">

我相信这很简单,但我没有找到解决办法。如何使用一个列表框绑定到数据源中的两个数组

以下是数据示例:

    <XmlDataProvider x:Key="ConfigurationData" XPath="Configuration/Component">
    <x:XData>
        <Configuration xmlns="">
            <Component ID="2252371">
                <ComponentAttribute ID="301080453">
                    <Name>ColorHexCodes</Name>
                    <Value />
                    <Values>
                        <Value>#FFFFFA</Value>
                        <Value>#FFFFFA</Value>
                        <Value>#FFFFFA</Value>
                        <Value>#FFFFFA</Value>
                        <Value>#FFFFFA</Value>
                        <Value>#FFFFFA</Value>
                        <Value>#A80000</Value>
                        <Value>#A80000</Value>
                        <Value>#A80000</Value>
                        <Value>#A80000</Value>
                        <Value>#A80000</Value>
                        <Value>#A80000</Value>
                        <Value>#D1D3D4</Value>
                        <Value>#D1D3D4</Value>
                        <Value>#D1D3D4</Value>
                        <Value>#D1D3D4</Value>
                        <Value>#D1D3D4</Value>
                        <Value>#D1D3D4</Value>
                    </Values>
                </ComponentAttribute>
                <ComponentAttribute ID="301080500">
                    <Name>ColorDescription</Name>
                    <Value />
                    <Values>
                        <Value>0010 - White</Value>
                        <Value>0010 - White</Value>
                        <Value>0010 - White</Value>
                        <Value>0010 - White</Value>
                        <Value>0010 - White</Value>
                        <Value>0010 - White</Value>
                        <Value>1902 - Red</Value>
                        <Value>1902 - Red</Value>
                        <Value>1902 - Red</Value>
                        <Value>1902 - Red</Value>
                        <Value>1902 - Red</Value>
                        <Value>1902 - Red</Value>
                        <Value>3971 - Silver</Value>
                        <Value>3971 - Silver</Value>
                        <Value>3971 - Silver</Value>
                        <Value>3971 - Silver</Value>
                        <Value>3971 - Silver</Value>
                        <Value>3971 - Silver</Value>
                    </Values>
                </ComponentAttribute>
            </Component>
        </Configuration>
    </x:XData>
</XmlDataProvider>

彩色六进制码
#FFFFF A
#FFFFF A
#FFFFF A
#FFFFF A
#FFFFF A
#FFFFF A
#A80000
#A80000
#A80000
#A80000
#A80000
#A80000
#D1D3D4
#D1D3D4
#D1D3D4
#D1D3D4
#D1D3D4
#D1D3D4
颜色描述
0010-白色
0010-白色
0010-白色
0010-白色
0010-白色
0010-白色
1902年-红色
1902年-红色
1902年-红色
1902年-红色
1902年-红色
1902年-红色
3971-银牌
3971-银牌
3971-银牌
3971-银牌
3971-银牌
3971-银牌
我需要显示的是一个列表,其中并排显示了ColorDescription和ColorHexCodes。这两个系列将始终保持一致

我想到了这个:

    <ListBox Grid.Row="0" Grid.Column="0" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Height="Auto" Width="Auto" Grid.ColumnSpan="2">
    <ListBox.ItemsSource>
        <Binding Source="{StaticResource ConfigurationData}" XPath="//ComponentAttribute[Name='ThreadDescription']/Values/*" />
    </ListBox.ItemsSource>
    <ListBox.ItemTemplate>
        <DataTemplate x:Key="Swatch">
            <StackPanel Orientation="Horizontal" VerticalAlignment="Center">
                <TextBlock Grid.Column="0" VerticalAlignment="Center" HorizontalAlignment="Left" Height="20" FontSize="14" Foreground="CadetBlue">
                    <TextBlock.Text>
                        <Binding XPath="//ComponentAttribute[Name='ColorDescription']/Values/Value" />
                    </TextBlock.Text>
                </TextBlock>
                <TextBlock Grid.Column="0" VerticalAlignment="Center" HorizontalAlignment="Left" Height="20" Margin="20,0,0,0" FontSize="14" Foreground="CadetBlue">
                    <TextBlock.DataContext></TextBlock.DataContext>
                    <TextBlock.Text>
                        <Binding XPath="//ComponentAttribute[Name='ColorHexCodes']/Values/Value" />
                    </TextBlock.Text>
                </TextBlock>
            </StackPanel>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

它呈现正确数量的ListBoxItems,但仅显示每个项中的第一个值。我哪里做错了?我知道这一定很容易,我只是错过了

研究一下如何使用一个可以同时保存两个列表的存储,但可以被一个列表框绑定并专门处理每种项目类型

指向MSDN的链接给出了在一个显示器中显示两个不同数据项的示例