繁体   English   中英

如何在组合框的Datatemplate内部访问textblock?

[英]How to access textblock inside Datatemplate in combobox?

我正在尝试通过代码将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没有显示任何文本。

希望得到所有可能的建议。 提前致谢。

这是将控件绑定到datatemplate内部的方法之一

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的double集合

<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是一个类名,或在组合框itemsource中设置该类名

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM