首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >电传RadComboBox应用SelectionBoxTemplate OnLoad?

电传RadComboBox应用SelectionBoxTemplate OnLoad?
EN

Stack Overflow用户
提问于 2014-11-15 01:35:55
回答 1查看 919关注 0票数 4

基本上,我们已经使用Telerik的RadComboBox和SelectionBoxTemplate创建了自己的自定义MultiSelect,以便在选择多个项时显示自定义文本。

代码语言:javascript
复制
<ucControls:MultiSelectComboBoxBase
  ... >

<ucControls:RadComboBox
    x:Name="RadCombo"
    Text=""
    Height="22"
    HorizontalContentAlignment="Left"
    HorizontalAlignment="Stretch"
    DropDownClosed="RadCombo_DropDownClosed"
    IsTextSearchEnabled="False"
    IsEnabled="{Binding IsEnabled}"
    CanAutocompleteSelectItems="False"
    CanKeyboardNavigationSelectItems="False"
    LostFocus="RadCombo_LostFocus">

    <ucControls:RadComboBox.SelectionBoxTemplate>
        <DataTemplate>
            <Grid Background="Aqua">
                <TextBlock x:Name="ComboBoxDisplay" Text="{Binding Text, ElementName=RadCombo}" />
            </Grid>
        </DataTemplate>
    </ucControls:RadComboBox.SelectionBoxTemplate>

    <ucControls:RadComboBox.ItemTemplate>
        <DataTemplate>
            <StackPanel>
                <CheckBox x:Name="chkBox"
                          Content="{Binding ItemValue}"
                          Tag="{Binding ItemID}"
                          Height="16" Margin="2"
                          IsChecked="{Binding IsChecked, Mode=TwoWay}"
                          Visibility="{Binding IsSelectAllItem, Converter={StaticResource booleanToVisibilityConverter}, ConverterParameter=NOT}"
                          HorizontalAlignment="Stretch" VerticalAlignment="Top"
                          Checked="ChkBox_Checked" Unchecked="ChkBox_Unchecked"
                          IsEnabled="{Binding IsEnabled, Mode=TwoWay}"/>

                <HyperlinkButton
                    VerticalAlignment="Center" Content="{Binding ItemValue}"
                    Visibility="{Binding IsSelectAllItem, Converter={StaticResource booleanToVisibilityConverter}}"
                    Style="{StaticResource HyperlinkButtonNoBorderStyle}" Margin="3,2,0,0"
                    Click="HyperlinkButton_Click"
                    IsEnabled="{Binding IsEnabled, Mode=TwoWay}" />
            </StackPanel>
        </DataTemplate>
    </ucControls:RadComboBox.ItemTemplate>
</ucControls:RadComboBox>

它工作得很好,但唯一的问题是,在加载雷达通信箱时,似乎没有实际应用SelectionBoxTemplate。它只在单击该框时应用。

在加载时显示:

然后单击,它将显示下拉列表:

然后单击,它将显示SelectionBoxTemplate:中的正确文本

注意,我制作了Textblock蓝色的背景色,只是为了表明它不适用于初始加载。

理想情况下,当它加载时,它应该自动应用SelectionBoxTemplate并显示正确的信息,而不是让单击,然后单击离开多选择组合框。此外,TextBlock文本绑定到RadComboBox的文本,因为在后面的代码中,我们设置了RadComboBox的文本。由于我查看了调试模式,并且所有信息都在那里,只有在框接收到焦点后才会应用选择框模板,所以没有出现空值问题或之前没有设置文本的问题。

在应用模板之前,是否有某种事件必须触发,或者有什么方法可以强制在加载时应用该模板?

EN

回答 1

Stack Overflow用户

发布于 2018-10-16 10:52:27

我和你有同样的问题。我已经通过设置SelectedIndex="0"来解决这个问题

我还读到,只有当SelectionBoxTemplate不可编辑时,RadComboBox才能工作:IsEditable="False"

代码语言:javascript
复制
<ucControls:RadComboBox
    x:Name="RadCombo"
    SelectedIndex="0"
    IsEditable="False"
    Height="22"
    HorizontalContentAlignment="Left"
    HorizontalAlignment="Stretch"
    DropDownClosed="RadCombo_DropDownClosed"
    IsEnabled="{Binding IsEnabled}"
    LostFocus="RadCombo_LostFocus">
...
</ucControls:RadComboBox>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26941557

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档