wpf从按钮调用特定的数组项

时间:2011-08-04 16:49:04

标签: wpf-controls binding observablecollection itemscontrol

我有一个MovieDim _characters = New ObservableCollection(of String)

在我的 MainWindow.vb 中,

Dim movies = New ObservableCollection(of Movie)
Me.parentG.DataContext = Me.movies

我希望在运行时根据按钮点击为电影添加字符 如何获得点击了角色按钮的特定电影?

MainWindow.xaml: -

  <Grid Name="parentG" >

   <ItemsControl ItemsSource="{Binding}">
     <ItemsControl.ItemTemplate>
       <DataTemplate>

       <Grid>
         <Grid.ColumnDefinitions>      
            <ColumnDefinition Width="100"></ColumnDefinition>
            <ColumnDefinition Width="100"></ColumnDefinition>
            <ColumnDefinition Width="700"></ColumnDefinition>
          </Grid.ColumnDefinitions>
           <TextBox Grid.Column="0" Text="{Binding MovieName}" />
       <Button Grid.Column="1" Content="New Character" Click="newCharacterButton_Click" Height="20" Width="100" HorizontalAlignment="Left" />

       <ListBox Grid.Column="2" Name="cList" ItemsSource="{Binding Characters}">  
           <ListBox.ItemTemplate >
             <DataTemplate >
               <TextBox Text="{Binding Name}"/>  
             </DataTemplate> 
            </ListBox.ItemTemplate>  
         </ListBox> 

        </Grid>

      </DataTemplate>
    </ItemsControl.ItemTemplate>
  </ItemsControl>

 </Grid>

1 个答案:

答案 0 :(得分:0)

终于明白了。以下是步骤: -

    按钮处理程序中的
  1. ,将发件人转换为Button
  2. 得到它的父母,就我而言,它是Grid
  3. 获取网格的DataContext,将其转换为(在本例中),Movie
  4. Movie中获取此Movie array的索引,假设每个Movie都存在索引属性,并在初始化期间设置。
  5. 向此character
  6. 添加movie