WPF:为什么在我创建图表控制之前,我的ComboBox选择变为事件会发射



所以我有应用程序和另一个子表格:

public partial class SubForm: MetroWindow...

这是我从主form打开Sub form的方式:

SubForm subForm = new SubForm();
subForm.ShowDialog();

在我的Sub form内部,我有此chart控制:

<telerik:RadCartesianChart
    x:Name="chart" />

Combobox

<ComboBox
    Name="cbInterfaces" 
    ItemsSource="{Binding Path=(my:MyClass.MachineInterfaces)}"
    SelectedIndex="0"
    SelectionChanged="cbInterfaces_SelectionChanged"/>

因此,我注意到Sub formInitializeComponent方法后立即进行操作后,代码进入我的Combobox SelectionChanged事件,并且我的chart控件仍然是null,尚未创建。因此,我无法使用它,直到再次使用Combobox并再次更改选择(在这种情况下,我的chart不是null)

,如果尚未初始化或加载窗口或RadCartesianChart,您可以立即从事件处理程序返回:

private void cbInterfaces_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    if (!this.IsLoaded || chart == null || !chart.IsLoaded)
        return; //do nothing
    //your code...
}

是的,但是问题是在创建和打开此表格后,我想在聊天中立即看到我的鼻烟,而不是再次更改我的ComboBox选择...

在调用InitializeComponent()方法之后以编程方式设置SelectedIndex属性:

public partial class SubForm : Window
{
    public SubForm()
    {
        InitializeComponent();
        cbInterfaces.SelectedIndex = 0;
    }
    private void cbInterfaces_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        //...
    }
}

<ComboBox
    Name="cbInterfaces" 
    ItemsSource="{Binding Path=(local:MyClass.MachineInterfaces)}"
    SelectionChanged="cbInterfaces_SelectionChanged"/>

相关内容

  • 没有找到相关文章

最新更新