繁体   English   中英

无法在组合框C#(和XAML)中执行selectedIndexChanged

[英]Cannot do selectedIndexChanged in combobox c#(and xaml)

我试图让用户从数据库中选择要显示的表,并且我听说这样做的最好方法是使用“ selectedIndexChanged”事件,以便当用户单击所需表时,它立即显示该表。 但是,由于某些原因,当我单击我的comboBox并发生事件时,我没有看到“ selectedIndexChanged”作为选项,而在手动编写时说:“成员“ SelectedIndexChanged”未被识别或无法访问”,这是我的xaml代码:

 <Window x:Class="WpfApp1.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:local="clr-namespace:WpfApp1"
    mc:Ignorable="d"
    Title="MainWindow" Height="350" Width="525">
<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="4*"/>
        <ColumnDefinition Width="*"/>
    </Grid.ColumnDefinitions>
    <Canvas Name="mycanvas" Background="LightBlue" Margin="0,0,34.4,-0.2">
        <DataGrid Name="g1">
        </DataGrid>
        <Label Name="l1" Content="" FontWeight="ExtraBold" FontSize="15" Foreground="{x:Null}" Canvas.Left="20"/>
    </Canvas>
    <Canvas Grid.Column="1">
        <Label Name="Instruction" Content="Choose a table" FontWeight="ExtraBold" FontSize="15" Canvas.Left="-23" Canvas.Top="62"/>
        <ComboBox SelectedIndexChanged="b1" Name="ComboBox1" FontWeight="Bold" FontSize="15" Canvas.Top="98" Width="135" Height="24" Canvas.Left="-31">
            <ComboBoxItem Foreground="#FF3FA4C5"  Name="classesTbl">classesTbl</ComboBoxItem>
            <ComboBoxItem Foreground="#FF3FA4C5" Name="gradesTbl">gradesTbl</ComboBoxItem>
            <ComboBoxItem Foreground="#FF3FA4C5" Name="studentsTbl">studentsTbl</ComboBoxItem>
            <ComboBoxItem Foreground="#FF3FA4C5" Name="subjectsTbl">subjectsTbl</ComboBoxItem>
            <ComboBoxItem Foreground="#FF3FA4C5" Name="subjectsTeachers">subjectsTeachers</ComboBoxItem>
            <ComboBoxItem Foreground="#FF3FA4C5" Name="TeachersTbl">TeachersTbl</ComboBoxItem>
        </ComboBox>
    </Canvas>
</Grid>

有谁知道如何解决它或我做错了什么?

WPF ComboBox控件( MSDN )没有SelectedIndexChanged事件,您可能会想到WinForms事件。

除此之外; 您应该使用MVVM( MVVM:从头到尾的教程? ),而不要过多地(如果有的话)依赖控制事件。 在这种情况下,您可以通过绑定SelectedItem轻松完成此操作,并在视图模型属性的设置器中更新DataGridItemsSource绑定到的集合。

最后一点; 几乎可以肯定使用Canvas是不正确的; 您应该只使用Grid这样您就可以很好地调整大小,而不是绝对定位。

SelectionChanged属性可以用于组合框,并且可以将命令绑定到该组合框。 可以根据命令在Viewmodel中编写相应的动作

暂无
暂无

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

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