gpt4 book ai didi

c# - Telerik RadComboBox 应用 SelectionBoxTemplate OnLoad?

转载 作者:行者123 更新时间:2023-11-30 12:59:08 25 4
gpt4 key购买 nike

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

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

效果很好,但唯一的问题是加载 radcombobox 时似乎并未实际应用 SelectionBoxTemplate。它仅在单击框时适用。

加载时显示:


然后你点击它会显示下拉列表:

然后您点击离开,它会显示来自 SelectionBoxTemplate 的正确文本:



请注意,我将文本 block 的背景色设为蓝色,只是为了表明它不适用于初始加载。


理想情况下,当它加载它应该自动应用 SelectionBoxTemplate 并显示正确的信息,而不是单击然后单击远离 multiselectcombobox。此外,TextBlock 文本绑定(bind)到 RadComboBox 的文本,因为在后面的代码中我们设置了 RadComboBox 的文本。空值或之前未设置的文本没有问题,因为我已经在 Debug模式下查看并且所有信息都在那里,选择框模板只是在框获得焦点之前不会被应用。


在应用模板之前是否有某种事件必须触发,或者我是否可以通过某种方式强制在加载时应用模板?

最佳答案

我遇到了和你一样的问题。我设法通过设置 SelectedIndex="0"
解决了这个问题我还读到 SelectionBoxTemplate 仅在 RadComboBox 不可编辑时才有效:IsEditable="False"

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

关于c# - Telerik RadComboBox 应用 SelectionBoxTemplate OnLoad?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26941557/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com