2010-03-20 5 views

답변

13

XAML에서는 직접 할 수 없지만 (코드에서 할 수는 있지만 Windows Forms와 완전히 동일합니다). 대신 데이터 바인딩을 사용하고 ItemsControl을 사용하여 버튼을 만들 수 있습니다. 당신은 실제로 ObjectDataProvider 및 CollectionViewSource를 사용하여 XAML에서 모든 일을 설정할 수 있습니다

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

:하지만 당신은 당신을위한 컨트롤 배열이 필요하지만, 당신이 컬렉션의 각 사람에 대한 버튼을한다고 가정 무슨 말을하지 않습니다 이것은 당신을 시작하게하는데 충분할 것입니다. 그리고 분명히 소스는 "어레이"가 필요한 것에 따라 비즈니스 데이터가 아닌 다른 것일 수 있습니다.

+0

감사합니다. 이것은 매우 분명합니다.으로 변경하기 위해 게시물을 편집하려했지만 그렇게하지 않았습니다. 사소한 오타. –

+0

Adam : 고마워요. – itowlson

관련 문제