保持组合框文本与更改的项目文本同步

时间:2017-12-06 20:58:47

标签: c# wpf combobox

我有一个带有多个项目的Combobox(C#标签,因为我想更改单个文本颜色)。在回调中,当编辑一些文本框时,我会更改项目的颜色和/或文本。当我点击组合框时,我看到列表中的项目具有正确的颜色/文本。但是,所选项目的颜色/文本更改不会直接反映在显示的组合框文本中。我怎样才能做到这一点?

我试图设置组合框本身的Text属性:没有效果。同时将所选项目设置为空标签,然后将其设置回正确的标签无效。如果我将SelectedIndex设置为-1,然后返回到正确的选定索引,它将工作并显示所显示的文本,但这会触发我不想要的SelectionChanged回调。我可以先从组合框中分离SelectionChanged回调,然后重新附加它,但这在我看来非常难看。

也许我错过了一些简单的事情......

修改 我按照SLak的建议尝试绑定:

List<Label> labels;
MyComboBox.ItemsSource = labels;

结果仍然相同。假设选择了索引0。当我更改相应的标签时:

labels[0].Contents = "new content";

然后它没有反映在组合框的选定文本中。当我单击组合框时,我可以在展开列表中看到新文本,但只有当我更改选择然后返回到索引0时,组合框将新文本显示为所选项目。该同步应该是自动的。

0 个答案:

没有答案