wpf вызывает конкретный элемент массива из кнопки - PullRequest
0 голосов
/ 04 августа 2011

У меня есть Movie класс с Dim _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 голосов
/ 05 августа 2011

наконец понял это. Ниже приведены шаги: -

  1. в обработчике кнопок, конвертировать отправителя в Button
  2. получить его родителя, в моем случае это был Grid
  3. Получите DataContext Сетки, конвертируйте ее в (в данном случае), Movie
  4. Получить индекс этого Movie в Movie array, предполагая, что свойство индекса существует для каждого Movie и было установлено во время инициализации.
  5. Добавьте character к этому movie
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...