[英]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
轻松完成此操作,并在视图模型属性的设置器中更新DataGrid
的ItemsSource
绑定到的集合。
最后一点; 几乎可以肯定使用Canvas
是不正确的; 您应该只使用Grid
这样您就可以很好地调整大小,而不是绝对定位。
SelectionChanged属性可以用于组合框,并且可以将命令绑定到该组合框。 可以根据命令在Viewmodel中编写相应的动作
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.