我试图从列表框中的扩展器移动项目(将项目保留在那里)并将其复制到另一个列表框。
<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>
我试图做以下事情,并且遇到了一些麻烦。
尝试将项目从扩展程序列表框复制到可见列列表框。有什么想法吗?
答案 0 :(得分:2)
我写过其中一件事,但没有分组到扩展器中。如果你做得对,分组是一个副作用。
您要做的是为您的viewmodel提供两个ObservableCollection
的某些数据项类,比如FromItems
和ToItems
。将XAML中的这两个集合绑定到两个ItemsSource
的{{1}}属性。
数据项类可以是一个非常简单的quickie类,它有两个属性(不是字段):Say,ListBoxes
和Name
,两个字符串。按GroupName
分组。 Here's a group template expander answer,here's how to do the actual grouping并在每个GroupName
设置DisplayMemberPath="Name"
。
ListBox
按钮会从>
中删除左侧列表框的SelectedItem
,并将其添加到FromItems
。 ToItems
按钮反之亦然。您可能不想从<
中删除,但是您必须小心不要将它们添加到FromItems
两次。
答案 1 :(得分:2)