2010-03-20 5 views

ответ

13

Вы не можете сделать это прямо в XAML (хотя вы можете сделать это в коде точно так же, как в Windows Forms). Вместо этого вы можете использовать привязку данных и ItemsControl для создания кнопок для вас. Вы не говорите, что вам нужен массив управления для, но предположим, что вы хотите кнопку для каждого человека в коллекции:

// Code behind 
public Window1() 
{ 
    var people = new ObservableCollection<Person>(); 
    // Populate people 
    DataContext = people; 
} 

// XAML 
<ItemsControl ItemsSource="{Binding}" BorderThickness="0"> 
    <ItemsControl.ItemTemplate> 
    <DataTemplate> 
     <Button Content="{Binding Name}" 
       Click="PersonButton_Click" 
       Margin="4" 
       /> 
    </DataTemplate> 
    </ItemsControl.ItemTemplate> 
</ItemsControl> 

Вы действительно можете настроить все это в XAML, используя ObjectDataProvider и CollectionViewSource, но этого должно быть достаточно, чтобы вы начали. И, очевидно, источник может быть чем-то иным, чем бизнес-данными, в зависимости от того, для чего нужен «массив».

+0

Thanks; это очень ясно. Я попытался изменить ваше сообщение, чтобы изменить на , но SO не разрешил мне. Просто небольшая опечатка. –

+0

Адам: спасибо, исправлено. – itowlson

Смежные вопросы