문제가 발생했습니다. 목록 상자에 바인딩을 사용하여 코드를 xaml에 바인딩하는 프로젝트를 만들었습니다. 그러나, 그것은 내 미래의 코드에서 몇 가지 문제를 만들었습니다 - 내 양식에 버튼을 추가하고 싶지만, 나는 약간의 오류가 발생합니다.xaml에서 바인드 된 목록 상자 외부에 단추 추가
'ItemsSource를 사용하기 전에 항목 컬렉션이 비어 있어야합니다.'
이 오류는 내 바인딩 가능 목록 상자 외부에 뭔가를 바인딩하려고하면 발생합니다.
속성 "VisualTree"는 한 번만 설정할 수 있습니다.
이 오류는 목록 상자 아래에 단추를 추가하려고 할 때 발생합니다.
누군가 내가 이것을 고칠 수있는 방법을 안내해 줄 수 있습니까?
내 코드 :
<ListBox x:Name="ItemsControl1">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid Columns="5">
</UniformGrid>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemTemplate>
<DataTemplate>
<Border BorderBrush="Black" BorderThickness="2" Width="Auto" Height="Auto">
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Number}"/>
<Image Source="{Binding Source}" Margin="0,0,5,0"/>
</StackPanel>
</Border>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
바람직한 결과는 목록 상자에서 버튼 될 것이다.
단지 : 당신이
Window
'의 S/UserControl
의Content
재산 번을 설정할 수 없기 때문에 당신은 어떤 레이아웃 컨테이너 (Grid
,StackPanel
등)의 내부에 모든 재료를 넣어해야합니다 그것 아래에 "모순되는 소리. ListBox 이외의 Button *을 공통 Panel에 넣습니다. StackPanel 또는 Grid. – Clemens나는 당신이 시도하고있는 것을 모호한 일반적인 생각을 가지고있다. 그러나 정확히 어디에서 버튼을 나타나게하고 왜 그것이 목록 상자 밖에 있는지 알아보기 바란다. – grek40
@Clemens 하하, 고마워. 내가 실수를 고쳤다. "Button을 ListBox 외에 일반적인 패널 (예 : StackPanel 또는 Grid)에 넣으십시오." 이 때 ItemsSource를 사용하기 전에 'Items collection이 비어 있어야합니다.'라는 메시지가 나타납니다. 오류 – Noctii