問題が発生しました。リストボックスへのバインドを使用してコードをxamlにバインドするプロジェクトを作成しました。しかし、それは私の将来のコードでいくつかの問題を作成しました - 私は自分のフォームにボタンを追加するが、私はいくつかのエラーが発生します。xamlでバインドされたリストボックスの外にボタンを追加する
'ItemsSourceを使用する前にアイテムコレクションを空にする必要があります。'
このエラーは、バインド可能なリストボックスの外に何かをバインドしようとすると発生します。
「VisualTree」プロパティは1回しか設定できません。
このエラーは、リストボックスの下にボタンを追加しようとすると発生します。
私はこれをどのように修正することができますか?
マイコード:
<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
年代/UserControl
のContent
プロパティを2回設定することはできませんので、 あなたは、いくつかのレイアウトコンテナー(Grid
、StackPanel
など)の内部ですべてのこのようなものを配置する必要がありますそれの下に "矛盾して聞こえる。 ListBox以外のButton *を共通のPanelに入れます。 StackPanelまたはGridです。 – Clemens私はあなたが何をしようとしているのかぼんやりした一般的な考え方を持っていますが、ボタンを正確に表示する場所とリストボックスの外側にない理由を明確にしてください。 – grek40
@クレメンスハハ、ありがとう私は間違いを修正した。 「ボタンをListBoxのほかに、共通のパネル、たとえばStackPanelまたはGridに配置する」これは、ItemsSourceを使用する前に 'Itemsコレクションが空である必要があります。'というメッセージが表示されたときです。エラー – Noctii