繁体   English   中英

在Silverlight 3 ComboBox中使用ItemTemplate时不会触发SelectionChanged

[英]SelectionChanged not triggered when using ItemTemplate in Silverlight 3 ComboBox

Silverlight ComboBox出现了一些奇怪的行为。 我从一些简单的代码开始:

xaml:

<ComboBox Name="drpInstallation" SelectionChanged="drpInstallation_SelectionChanged" />

CS:

List<string> installations = new List<string>();
installations.Add("Testing 123");
installations.Add("Antoher test");
installations.Add("Yeah");
drpInstallation.ItemsSource = installations;

单击某项时,一切正常。 但是,如果我像这样在ComboBox中使用ItemTemplate:

xaml:

<ComboBox Name="drpInstallation" SelectionChanged="drpInstallation_SelectionChanged">
    <ComboBox.ItemTemplate>
        <DataTemplate>
            <ComboBoxItem Content="{Binding Installation}" />
        </DataTemplate>
    </ComboBox.ItemTemplate>
</ComboBox>

CS:

ICollection<InstallationClass> installations = a list of the installation class;
drpInstallation.ItemsSource = installations;

InstallationClass.cs:

public class InstallationClass
{
    public int PK;
    public string Installation;
}

现在,ComboBox正确显示,但是当我单击文本时,如果没有任何反应,则显示文本 如果我单击文本本身的右侧,则该项目将像正常情况一样被选择。 点是 自然的做法是单击文本本身,而不是单击文本的左侧或右侧。 知道为什么会发生这种情况,以及如何纠正它吗? 这是Silverlight的错误吗?

您的DataTemplate应该如下所示:

<ComboBox Name="drpInstallation" SelectionChanged="drpInstallation_SelectionChanged">
    <ComboBox.ItemTemplate>
        <DataTemplate>
            <TextBox Text="{Binding Installation}" />
        </DataTemplate>
    </ComboBox.ItemTemplate>
</ComboBox>

问题在于ComboBoxItems使用了click事件,而不是冒泡它。

暂无
暂无

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

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