如何在C#中绑定ComboBox.TextBlock

时间:2016-01-29 04:59:03

标签: c# wpf data-binding combobox

我试图将一些XAML转换为C#代码。这是xaml:

 ComboBoxInstance.TextBlock.SetBinding(TextBlock.ForegroundProperty, "DesiredForegroundBrush");

我想在C#代码中做同样的事情,但我对如何访问TextBlock感到茫然。

我尝试了以下内容:

 var childrenCount = VisualTreeHelper.GetChildrenCount(ComboBoxInstance);

但是C#代码无法访问TextBlock。

我也尝试过访问组合框的子项,但GetChildrenCount返回0:

//======= Spring Buffer ======//
...
glBindBuffer(GL_ARRAY_BUFFER, mSpringBuffer);
...
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, VERTEX_BYTE_SIZE, 0);

//======= Mass Buffer ======//
...
glBindBuffer(GL_ARRAY_BUFFER, mMassBuffer);
...
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, VERTEX_BYTE_SIZE, 0);

我做了一些网络搜索,但我发现的只是关于如何将组合框绑定到TextBox的问题。

我觉得必须有一个简单的方法来做到这一点。任何帮助将不胜感激!

更新

我找到了这篇文章:

How to I access an attached property in code behind?

但是这只显示如何直接在后面的代码中分配属性,而不是在其上设置绑定。

2 个答案:

答案 0 :(得分:2)

使用ComboBox.ForegroundProperty绑定前景色。你为什么想要文本框?

答案 1 :(得分:0)

每个控制源自" Control" class将具有Foreground属性,它是一个依赖属性,可以绑定到任何 Brush 值。要更改任何控制前景的值,我们不需要挖掘属性。

<ComboBox Background="{Binding ForegroundColorBrush}"/>

和组合框前景色将根据绑定而改变。