2009-04-30 8 views
0

Iデータバインドされた項目について、以下のXAMLは、新しいグループが最初に現れる追加するラベルとボタンで、グループのリストを表示するように制御する必要があり:WPF ItemsControlのデータバインディング - 追加の余分な初期のコントロール

<WrapPanel Orientation="Horizontal"> 
    <Label Content="Groups" /> 
    <Button x:Name="btnGroupAdd" Click="btnGroupAdd_Click" Content="+" /> 
    <ItemsControl ItemsSource="{Binding}" x:Name="_groupList" > 
     <ItemsControl.ItemsPanel> 
      <ItemsPanelTemplate> 
       <WrapPanel Orientation="Horizontal"> 
       </WrapPanel> 
      </ItemsPanelTemplate> 
     </ItemsControl.ItemsPanel> 
     <ItemsControl.ItemTemplate> 
      <DataTemplate> 
       <Border Padding="3" BorderThickness="1"> 
        <WrapPanel> 
         <CheckBox x:Name="_groupEnabled" Click="GroupEnabled_Click" IsChecked="{Binding Path=Checked}"> 
          <TextBlock x:Name="_groupName" Text="{Binding Path=Group.Name}" ></TextBlock> 
         </CheckBox> 
         <Button x:Name="_deleteGroup" FontStyle="Normal" Click="DeleteGroup_Click" /> 
        </WrapPanel> 
       </Border> 
      </DataTemplate> 
     </ItemsControl.ItemTemplate> 
    </ItemsControl> 

少数のグループでは、すべてが1行に表示されます。

グループ+グループ1グループ2グループ3

私は複数のグループを追加すると、アイテムを含むラップパネルはラップしますが、新しいグループを追加するには、最初のラベルとボタンがで、独自の行にあります次の行から始まるデータバインドされたグループ。

グループ+
グループ1グループ2グループ3 GROUP4

なぜこれが起こっているラップパネルがネストされているように私には、理解することができGROUP5。私の質問は、最初のラベルとボタンをインナーラップパネルに含めるにはどうすればよいのですか?あなたはこれで満足している場合は

グループ+グループ1グループ2グループ3
GROUP4 GROUP5

答えて

1

グループ+グループ1グループ2グループ3
                                GROUP4 GROUP5

それから私は、外側と内側GridWrapPanelを使用してお勧めします。そうでなければ、あなたのオプションは次のとおりです。

  1. 他のコントロール(LabelButton)、またはあなたが結合しているコレクションにこれらのコントロールをreprentingビューモデルを含めます。
  2. あなた自身でPanelを書きます。
+0

ありがとうございました。私はグリッドを見てみましょう、それは一番簡単なようです。 XMLファイルから逆シリアル化されているので、コントロールをコレクションに追加することはできません。 次の質問は、自分のパネルを書く方法ですね... – harriyott

関連する問題