2010-01-18 35 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