代码之家  ›  专栏  ›  技术社区  ›  Gurucharan Balakuntla Maheshku

WPF DataGrid XML绑定使用DataTemplate在单元格中显示多个项

  •  0
  • Gurucharan Balakuntla Maheshku  · 技术社区  · 14 年前

    我有一个数据报,如下所示:

    <wpfkit:DataGrid AutoGenerateColumns="False"
           ItemsSource="{Binding}"
           Width="Auto"
           FrozenColumnCount="2"
           SelectionMode="Extended"
           CanUserAddRows="False"
           x:Name="CommonPEGrid"
           Loaded="CommonPEGrid_Loaded">
        <wpfkit:DataGrid.DataContext>
            <XmlDataProvider Source="PE.xml" XPath="/Rows/Row"></XmlDataProvider>
        </wpfkit:DataGrid.DataContext>
    </wpfkit:DataGrid>
    

    我正在将它从XML绑定到DataGrid。我的XML如下:

    <Rows>
    <Row Id="1">
      <Devices>
        <Device>Device 1</Device>
        <Device>Device 2</Device>
     </Devices>
    </Row>
    
    <Row Id="2">
      <Devices>
        <Device>Device 3</Device>
        <Device>Device 4</Device>
      </Devices>
    </Row>
    

    我为DataGrid中的单元格定义了一个数据模板,定义如下:

    <DataTemplate x:Key="MethodDefault">
        <ComboBox Margin="5" Height="25" ItemsSource="{Binding XPath=./Devices}"  SelectedIndex="0" 
                           >
            <ComboBox.ItemTemplate>
                <DataTemplate>
                    <TextBlock Text="{Binding XPath=./Device}"></TextBlock>
                </DataTemplate>
            </ComboBox.ItemTemplate>
        </ComboBox>
    </DataTemplate>
    

    问题是它总是只显示一个设备,即组合框中的第一个设备。我想在下拉列表中显示所有设备。我不知道如何迭代它们。我原以为ComboBox会自动迭代,但事实并非如此。请帮帮我!!

    1 回复  |  直到 12 年前
        1
  •  0
  •   akjoshi HCP    12 年前

    我能找出答案。我把它贴出来,假设它能帮助别人!!

    <ComboBox  ItemsSource="{Binding XPath=.//Devices}"  SelectedIndex="0" >
    
    </ComboBox>