2016-07-06 82 views
0

我试图从列表框中的扩展器中移动一个项目(将项目保留在那里)并将其复制到另一个列表框中。带有扩展器的列表框到另一个列表框

<ListBox Name="lbAvailableColumns" Grid.Row="1" Grid.Column="0"> 
      <Expander Header="Account" Background="Transparent" BorderBrush="{x:Null}" > 
       <StackPanel> 
        <ListBox> 
         <ListBoxItem Content="Account Is Locked Out"/> 
         <ListBoxItem Content="Expiration Date"/> 
         <ListBoxItem Content="Last Lockout Date"/> 
         <ListBoxItem Content="Must Change Password"/> 
         <ListBoxItem Content="Password Age(Days)"/> 
         <ListBoxItem Content="Password Last Changed"/> 
         <ListBoxItem Content="Password Never Expires"/> 
         <ListBoxItem Content="Password Not Required"/> 
         <ListBoxItem Content="Smart Card Required For Logon"/> 
         <ListBoxItem Content="User Cannot Change Password"/> 
         <ListBoxItem Content="Username"/> 
        </ListBox> 
       </StackPanel> 
      </Expander> 
      <Expander Header="Exchange" Background="Transparent" BorderBrush="{x:Null}" /> 
      <Expander Header="General" Background="Transparent" BorderBrush="{x:Null}"/> 
      <Expander Header="Group Membership" Background="Transparent" BorderBrush="{x:Null}"/> 
      <Expander Header="Organization" Background="Transparent" BorderBrush="{x:Null}"/> 
      <Expander Header="Other" Background="Transparent" BorderBrush="{x:Null}"/> 
      <Expander Header="Profile" Background="Transparent" BorderBrush="{x:Null}"/> 
      <Expander Header="System" Background="Transparent" BorderBrush="{x:Null}"/> 
      <Expander Header="Telephone" Background="Transparent" BorderBrush="{x:Null}"/> 
     </ListBox> 

我正在尝试做以下操作,并且遇到了一些麻烦。

enter image description here

试图从扩展列表框中复制项目,在可见列列表框中。有任何想法吗?

回答

2

@Ed Plunkett的建议我编写了一个完整的例子。在GitHub

+0

非常好!我做了其中的一个作为工作的自定义控件,但是时间紧张,所以它有一堆专门针对我们的主题材料放入模板中。没时间鞭打它的形状张贴在这里。尽管如此,它在列表之间拖曳。正确地做到这一点是一场真正的笑声暴动...... –

2

我写过这些东西之一,但没有分组到扩展器中。如果你做得对,分组是一个侧面问题。

你想要做的是给你的视图模型两个ObservableCollection s某些数据项类,比如FromItemsToItems。将XAML中的这两个集合绑定到两个ListBoxesItemsSource属性。

数据项类可能是一个非常简单的quickie类,它具有两个属性(不是字段):说,NameGroupName,都是字符串。按GroupName分组。 Here's a group template expander answer,here's how to do the actual grouping并在每个ListBox上设置DisplayMemberPath="Name"

>按钮从FromItems中删除左列表框的SelectedItem,并将其添加到ToItems<按钮反过来。您可能不想从FromItems中删除,但您必须小心,不要将它们添加到ToItems两次。

+0

Complete Example

源代码你能提供一个如何做到这一点,或者更好的链接一个非常非常小的例子吗?尽管如此,这很有帮助。 – TonyW

+0

我得到Observablecollection部分,我可以这样设置,但第二个文本框不会有组,只是项目。所以我想来回 – TonyW

+0

@TonyW分组不会影响到这一点 - 这是在视图中完成的显示事情。分组或不分组时,视图模型只有一个平坦的ObservableCollection。左/右箭头代码不知道分组 –

相关问题