2010-01-18 68 views
0

更新数据我有一个显示有关对象的列表信息列表框:WPF列表框:如何与结合

  <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> 

但问题是被绑定到网格的数据项不被任何指定的,我不知道该怎么做。

任何建议将是wellcome。

谢谢!

P.S.我试图为Grid指定CustomersList.ItemsSource作为DataContext - 这没有给出任何结果。

回答

2

您可以绑定到ListBox的SelectedItem属性,一种方法是使用ElementName。

<Grid DataContext="{Binding ElementName=CustomersList, Path=SelectedItem}"> </Grid> 
+0

非常感谢,它的工作原理! – Budda 2010-01-18 12:30:57

+0

然后请将PMN的答案标记为正确的答案。 – 2010-01-19 15:36:10