Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法在组合框c#(和xaml)中执行selectedIndexChanged_C#_Wpf_Xaml_Selectedindexchanged - Fatal编程技术网

无法在组合框c#(和xaml)中执行selectedIndexChanged

无法在组合框c#(和xaml)中执行selectedIndexChanged,c#,wpf,xaml,selectedindexchanged,C#,Wpf,Xaml,Selectedindexchanged,我试图让用户从我的数据库中选择要显示的表,我听说最好的方法是使用“selectedIndexChanged”事件,这样当用户单击所需的表时,它会立即显示它。但是,由于某些原因,当我单击组合框,然后单击事件时,我没有将“selectedIndexChanged”视为选项,并且在手动写入时会显示:“selectedIndexChanged”成员无法识别或无法访问” 这是我的xaml代码: <Window x:Class="WpfApp1.MainWindow" xmlns="http

我试图让用户从我的数据库中选择要显示的表,我听说最好的方法是使用“selectedIndexChanged”事件,这样当用户单击所需的表时,它会立即显示它。但是,由于某些原因,当我单击组合框,然后单击事件时,我没有将“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>

类目
等级BL
学生
主题BL
受试者偷窃者
教师

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

WPF组合框控件()没有
SelectedIndexChanged
事件,您可能会想到WinForms one

除此之外;您应该使用MVVM()并且不太依赖于控制事件(如果有的话)。在这种情况下,您可以通过绑定
SelectedItem
并在视图模型属性的setter中更新
DataGrid
ItemsSource
绑定到的集合来轻松实现这一点

最后一项说明;使用画布几乎肯定是不正确的;您应该只使用
网格
,这样就可以很好地调整大小而不是绝对定位。

WPF组合框控件()没有
SelectedIndexChanged
事件,您可能会想到WinForms事件

除此之外;您应该使用MVVM()并且不太依赖于控制事件(如果有的话)。在这种情况下,您可以通过绑定
SelectedItem
并在视图模型属性的setter中更新
DataGrid
ItemsSource
绑定到的集合来轻松实现这一点


最后一项说明;使用画布几乎肯定是不正确的;您应该只使用
网格
,这样您就可以很好地调整大小而不是绝对定位。

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

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

是的,谢谢我找到了它,并在最后运行良好!是的,谢谢,我找到了,结果很好!