我有一个自定义 RibbonGallery 控件,例如 Excel、MSWord 和 Outlook。
请参考下面的 Excel RibbonGallery 图片,正常选择仍然存在。
并且我保留了两个ItemsSource,一个用于RibbonGallery View,一个用于Popup,并将项目安排在RibbonGallery和Popup View中。
当我在 RibbonGallery 中选择一个项目时,SelectedItem(对象)的选择将被更新。如果我打开一个弹出窗口,我从 RibbonGallery 中清除了 ItemsSource(为了避免元素已经添加了另一个元素问题的子元素)并将其重新分配给 Popup ItemsControl。但是在打开/关闭弹出窗口后,所选项目的选择被清除。
private void UpdateItemsSource()
{
if (!this.IsDropDownOpen)
{
this.popupGalleryItemsControl.ItemsSource = null;
this.ribbonGalleryItemsControl.ItemsSource = this.ItemsSource;
}
else
{
this.ribbonGalleryItemsControl.ItemsSource = null;
this.popupGalleryItemsControl.ItemsSource = this.ItemsSource;
}
}
<ItemsControl x:Name="RibbonGalleryItemsControl"
ItemContainerStyle="{TemplateBinding ItemContainerStyle}"
ItemTemplate="{TemplateBinding ItemTemplate}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<ItemsWrapGrid Orientation="Horizontal" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
<ItemsControl x:Name="PopupItemsControl"
ItemContainerStyle="{TemplateBinding ItemContainerStyle}"
ItemTemplate="{TemplateBinding ItemTemplate}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<ItemsWrapGrid Orientation="Horizontal" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
SelectedItem从ItemsControl Tapped事件中更新。
有人请告诉我在将新集合更新到控件时如何保留选择(RibbonGallery 到弹出窗口和弹出到 RibbonGallery)?