我有一个数据网(称为Dat1),该网有一个物品来源,必须接受可观察的海关类型收集,称作A型。 类型A的特性之一是另一种习俗的可观察收集,称为类型B。 之后,我有一只 com子,其物品来源必须达1英寸。
因此,当用户选择1类A时, com体显示从选定的类型A中可观测到的类型B中的物品。 是否有意义?
具有约束力的指定经营实体的工作及其最新信息。 问题在于,当“ com”箱中展示的物品已经展示出,用户选择了不同的“ Type”类型,并试图查看“ com”箱中的新项目时,就会出现长时间的停顿,而项目介绍者产生新项目。
为了检验问题,我可以简化情况。
复制步骤:
采用......创建新的WPF项目。 NET 4.0。
该法典如下。
为了采取冻结行动,你必须放弃 com子,看看这些物品,然后点击 but子,以便改变物品来源,然后又把 com子再次 drop。 com子在几秒后倒塌,但为什么如此缓慢?
XAML
<Window x:Class="ComboBoxTest.MainWindow"
xmlns:System="clr-namespace:System;assembly=mscorlib"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<StackPanel>
<ComboBox x:Name="cbo" DisplayMemberPath="Junk1"></ComboBox>
<Button Content="Click Me!" Click="btn_Click"></Button>
</StackPanel>
</Grid>
</Window>
法典
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
this.cbo.ItemsSource = junk1;
}
ObservableCollection<Junk> junk1 = new ObservableCollection<Junk>() {
new Junk() { Junk1 = "junk1 - 1" },
new Junk() { Junk1 = "junk1 - 2" } };
ObservableCollection<Junk> junk2 = new ObservableCollection<Junk>() {
new Junk() { Junk1 = "junk2 - 1" },
new Junk() { Junk1 = "junk2 - 2" },
new Junk() { Junk1 = "junk2 - 3" },
new Junk() { Junk1 = "junk2 - 4" } };
private void btn_Click(object sender, RoutedEventArgs e)
{
if (this.cbo.ItemsSource == junk1)
this.cbo.ItemsSource = junk2;
else
this.cbo.ItemsSource = junk1;
}
}
public class Junk
{
public string Junk1 { get; set; }
}
NOTE: 这是一个WPF问题。 我听到银星说,这个问题也一样。 我无需知道银灯是否奏效。 我需要一名妇女论坛的答复。
PS。 当项目源改为“Jnk2”时,拖延时间会更长,大概是因为它更大。
它拖延了足够的时间,我认为这可能是由于具有约束力的例外,因为例外需要时间。 是否有办法看到是否有具有约束力的例外?