簡體   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