代码之家  ›  专栏  ›  技术社区  ›  Budda

WPF列表框:如何使用绑定更新数据

  •  0
  • Budda  · 技术社区  · 16 年前

    我有一个列表框,显示关于对象列表的信息:

                <ListBox Grid.Column="0" Height="152" Name="CustomersList" HorizontalAlignment="Stretch">
                    <ListBox.ItemTemplate>
                        <DataTemplate>
                            <TextBlock Text="{Binding Path=Name, Mode=OneWay}"/>
                        </DataTemplate>
                    </ListBox.ItemTemplate>
                </ListBox>
    

    我将在另一个块中显示有关选定项的更详细信息,但我不知道(也找不到)如何将选定项绑定到这些块数据上下文。我想应该是这样的:

                    <Grid Grid.Column="1" DataContext="{Binding Path=ItemSelected, UpdateSourceTrigger=PropertyChanged}" VerticalAlignment="Top">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="150"/>
                        <ColumnDefinition Width="250"/>
                    </Grid.ColumnDefinitions>
    
                    <Grid.RowDefinitions>
                        <RowDefinition />
                        <RowDefinition/>
                        <RowDefinition/>
                    </Grid.RowDefinitions>
    
                    <TextBlock Grid.Row="0" Grid.Column="0" Text="Id" VerticalAlignment="Center" />
                    <TextBox Grid.Row="0" Grid.Column="1" Text="{Binding Path=Id}" VerticalAlignment="Center"/>
    
                    <TextBlock Grid.Row="1" Grid.Column="0" Text="Name" VerticalAlignment="Center"/>
                    <TextBox Grid.Row="1" Grid.Column="1" Text="{Binding Path=Name}" VerticalAlignment="Center"/>
    
                    <StackPanel Grid.Row="2" Grid.ColumnSpan="2" Orientation="Horizontal" HorizontalAlignment="Center">
                        <Button Content="Add new" />
                        <Button Content="Store changes" />
                    </StackPanel>
                </Grid>
    

    但问题是要绑定到网格的数据项没有在任何地方指定,我不知道如何做。

    任何建议都是好消息。

    谢谢!

    另外,我尝试将customersList.itemsSource指定为网格的DataContext,但没有给出任何结果。

    1 回复  |  直到 16 年前
        1
  •  2
  •   PMN    16 年前

    可以绑定到列表框的SelectedItem属性,一种方法是使用elementName。

    <Grid DataContext="{Binding ElementName=CustomersList, Path=SelectedItem}"> </Grid>
    
    推荐文章