【问题标题】:Modify selected RibbonComboxBox item by code通过代码修改选中的 RibbonComboxBox 项
【发布时间】:2013-07-21 00:00:37
【问题描述】:

我尝试通过 RibbonComboBox 的代码修改所选项目:

<r:RibbonComboBox x:Name="RibbonComboxBoxEditEnemyProjectiles" Label="Projectile"   SmallImageSource="img/history16.png">
    <r:RibbonGallery SelectedItem="{Binding Path=iSpriteIdx}" >
        <r:RibbonGalleryCategory ItemsSource="{Binding oProjectiles, Source={StaticResource GameInfos}}" />
    </r:RibbonGallery>
</r:RibbonComboBox>

我尝试了两种方法:

RibbonGalleryEditProjectileSprite.SelectedItem  = GameData.oSprites[ idx ];
RibbonGalleryEditProjectileSprite.SelectedValue = GameData.oSprites[ idx ];

这种方法行不通。这样做的正确方法是什么?

谢谢

【问题讨论】:

  • “这种方式行不通”是什么意思?请提供更多详细信息,例如如果控件未更新或抛出任何异常。
  • 对不起,回答时间。 "不工作" == "控件未更新,无异常

标签: c# wpf ribbon


【解决方案1】:

如果您在发布问题之前搜索此网站,您可以找到很好的答案...看看this postthis post

更新>>>

我为您提供链接的How to set SelectedItem on a RibbonComboBox using MVVM? 帖子为您提供了完整的解决方案。基本上答案是这样的:

您设置为RibbonGallery.DataContext 的任何对象都应具有一个可绑定到RibbonGalleryCategory.ItemsSource 属性的集合属性和一个与要绑定到RibbonGallery SelectedItem 属性的集合项相同类型的属性。

假设您选择的项目属性名为SelectedItem。然后,您将能够将您设置为 RibbonGallery.DataContext 的对象的 SelectedItem 属性设置为集合中的项目,并且绑定将更改 RibbonGallery UI 中的选定项目。

请注意,如果您使用对象作为图库数据类型(与 string 等原语相反),那么只有将 SelectedItem 属性设置为 实际 em> 集合中的项目,而不仅仅是具有相同值的项目。如果您的数据对象具有具有唯一值的属性,则可以通过以下方式轻松实现:

DataContextData.SelectedItem = DataContextData.CollectionData.Where(d => d.Id == 
itemToSelect.Id).Single();

如果仍然没有帮助,我在网上进行了快速搜索,发现了一个完整的解决方案,您可以在“Windows Presentation Foundation 团队的官方博客”的How do I add Galleries to my Ribbon? 帖子中下载并查看。它展示了我刚才描述的方法的一个很好的例子。

【讨论】:

  • 任何机构有任何想法这样做吗?我找不到通过代码修改 RibbonComboxBox selectedItem/selectedValue 的方法...
  • 谢谢,我在 stackoverflow 上搜索,但显然没有使用正确的关键字。
  • 如果您的问题已被回答,请点击绿色勾号将其标记为已回答,以便其他用户知道。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多