1

我正在尝试通过代码绑定 ComboBox 内的 TextBlock。我能够成功绑定文本块,但由于某些原因 TextBlock 不显示文本值。

我有检查所选值的机制,并且我可以毫无问题地获得所选值。

总而言之,我的绑定工作正常,但我错过了一些东西,因此 textblock 没有显示与之绑定的文本。

这是我用于绑定的代码:其中“lObjTextBlock”是 ComboBox 内的 TextBlock。

TextBlock lObjTextBlock = (TextBlock)ComboBox.ItemTemplate.LoadContent();

 Binding lObjBinding = new Binding();

lObjBinding.Path = new PropertyPath("[" + lObjMap.PropertyName + "]");

lObjTextBlock.SetBinding(TextBlock.TextProperty, lObjBinding);

这是 TextBlock 的 XAML:

<my:HComboBox Name="cmbRefDoctor">
<my:HComboBox.ItemTemplate>
    <DataTemplate>
                <TextBlock x:Name="txtRefDoctorName" />
    </DataTemplate>
</my:HComboBox.ItemTemplate>
</my:HComboBox>

再一次:我的问题是 TextBlock 没有显示任何 Text 虽然正在设置值。

很想得到所有可能的建议。提前致谢。

4

1 回答 1

0

这是绑定数据模板内部控件的一种方法

this.DataContext = Person;

Binding binding = new Binding();
binding.Source = ob;
DataTemplate dtemp = (DataTemplate)Resources["PointTemp"];
Border bdr = dtemp.LoadContent() as Border;
TextBlock tblk = bdr.Child as TextBlock;
tblk.SetBinding(TextBlock.TextProperty, binding);

在这里,我使用 ob 作为双重集合,通过绑定源分配给 textproperty

<UserControl.Resources>
    <DataTemplate x:Key="PointTemp">
        <Border Margin="0,23,0,0" Background="Transparent">
            <TextBlock Text="{Binding}"  Foreground="White" FontSize="28" HorizontalAlignment="Center" VerticalAlignment="Center" TextAlignment="Center"/>
        </Border>
    </DataTemplate>
</UserControl.Resources>

你可以分配,

如果是组合框或列表框

这里Person是类名,或者在combobox itemsource中设置类名

于 2013-01-18T08:19:48.000 回答