【问题标题】:Set selecteditem of combobox in wpf在wpf中设置组合框的选定项
【发布时间】:2018-06-18 20:53:09
【问题描述】:

我有一个我自己无法解决的问题,需要您的支持。 在我的 WPF 应用程序中,我有一个带有某种导航栏(基于 System.Windows.Controls.Ribbon)和一个内容区域的 MainWindow。 当我单击一个按钮 1 (RibbonButton) 时,我将一个 Page 分配给 MainWindow 的内容区域。 在页面中,我有一个包含多个值/项目的组合框,我希望选择与我在导航中按下的按钮的标签或名称匹配的值。 当我按下导航中的另一个按钮时,应该在组合框中选择另一个项目。

不幸的是,在 MainWindow 后面的代码中的 button_click 事件中,我无法访问页面对象的组合框。

有人可以帮我如何在主窗口的点击事件中访问页面对象的组合框吗?

谢谢你和问候 TPS

【问题讨论】:

  • 使用MVVM;在导航中设置新视图模型可以拾取的模型中的变量。用后面的代码来做这件事将是一场噩梦
  • 您能否为此添加更多详细信息(例如示例代码等)。我知道这听起来有点愚蠢,但我并不是真正的开发人员,只知道一些关于 MVVM、WPF 中的绑定等的抽象细节。不幸的是,您提出的解决方案超出了我目前对如何使用 MVVM 解决此问题的知识/想象。
  • 不幸的是,完整的代码对于 SO 答案来说太大了(或者我会写一个)。不过,我不建议你让你的 MVVM 基础足够扎实。
  • 好的,我会尽量让我的 MVVM 基础足够扎实,一旦我开始工作,我会回答我自己的问题。也许这会帮助其他人。顺便说一句:我有点失望有人否决了我的问题。 :-/
  • 我建议只删除这个并询问更集中的一个。当前的解决方案太大了(对于初学者来说,至少会跨越四个文件)。阅读本文可能会对您有所帮助:Why is “Can someone help me?” not an actual question?。在你的情况下;你也有一个XY问题:)

标签: c# wpf combobox selecteditem


【解决方案1】:

你在使用 MVVM 吗? 正如我所读到的,您在代码中使用了代码,对吗?我猜您对您的页面有参考,对吗?我认为您可以在第 I 页上创建一个公共方法,并通过该方法发送您想要在组合框中设置的值,然后如果您使用 mvvm,将该值发送到与组合框 SelectedItem 关联的 viewmodel 属性。

private void ribonButton_click()
{ thePageI.SetComboboxwith("this value");
 .....
}

在页面I中

public void SetCombobox( string theValue){
 myViewModel.SetSelectedItem(theValue);
}

类似的东西

【讨论】:

  • 当我问这个问题时,我正在使用后面的代码进行导航。根据 BradleyDotNET 的评论,我切换到 MVVM - 意思是:Views:我有一个 MainWindow(包括导航,包括两个“导航”按钮),一个 ContentControl 和一个 Content View(一个 UserControl与 i.a. 组合框)。 ViewModels:每个 View 一个 ViewModel。 Model:具有两个变量的类(此变量的列表显示在组合框中)。到目前为止,我的工作是通过 MainWindow 的 ViewModel 中的 ICommand 将一个导航按钮绑定到 contentcontrol。
猜你喜欢
  • 2011-06-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-13
  • 1970-01-01
  • 2010-12-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多