2017-11-13 1 views
0

문제가 발생했습니다. 목록 상자에 바인딩을 사용하여 코드를 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> 

바람직한 결과는 목록 상자에서 버튼 될 것이다.

+0

단지 : 당신이 Window '의 S/UserControlContent 재산 번을 설정할 수 없기 때문에 당신은 어떤 레이아웃 컨테이너 (Grid, StackPanel 등)의 내부에 모든 재료를 넣어해야합니다 그것 아래에 "모순되는 소리. ListBox 이외의 Button *을 공통 Panel에 넣습니다. StackPanel 또는 Grid. – Clemens

+0

나는 당신이 시도하고있는 것을 모호한 일반적인 생각을 가지고있다. 그러나 정확히 어디에서 버튼을 나타나게하고 왜 그것이 목록 상자 밖에 있는지 알아보기 바란다. – grek40

+0

@Clemens 하하, 고마워. 내가 실수를 고쳤다. "Button을 ListBox 외에 일반적인 패널 (예 : StackPanel 또는 Grid)에 넣으십시오." 이 때 ItemsSource를 사용하기 전에 'Items collection이 비어 있어야합니다.'라는 메시지가 나타납니다. 오류 – Noctii

답변

0

아래에 아래에ListBox 선언을 추가해야합니다. 시각적 트리가 바인딩을 통해 채워지고 더 이상 수동으로 변경할 수 없기 때문에 직면 한 예외가 발생합니다. 목록 상자 안에 "

<StackPanel> 
    <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> 
    <Button/> 
</StackPanel> 
+0

'Content'속성이 두 번 이상 설정되었습니다. 이것은 내가 목록 상자 아래에 내 버튼을 선언 할 때 오류입니다. – Noctii

+0

일부 컨테이너 내에 버튼이있는 목록 상자 (예 :'StackPanel','Grid') – Shcherban

+0

감사합니다! 내 목록 상자 주위에 격자를 추가 한 다음 스택 패널의 목록 아래에 을 추가했습니다. – Noctii