无法在组合框c#(和xaml)中执行selectedIndexChanged
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无法在组合框c#(和xaml)中执行selectedIndexChanged相关的知识,希望对你有一定的参考价值。
我试图让用户选择从我的数据库中显示哪个表,我听到最好的方法是使用“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: Tutorial from start to finish?)并且不依赖于控制事件(如果有的话)。在这种情况下,您可以通过绑定SelectedItem
轻松完成此操作,并在视图模型属性的setter更新中绑定DataGrid
的ItemsSource
绑定的集合。
最后一点说明;使用Canvas
几乎肯定是不正确的;你应该坚持使用Grid
,这样你就可以很好地调整大小而不是绝对定位。
SelectionChanged属性可用于组合框,命令可以绑定到它。可以根据命令在Viewmodel中写入相应的操作
以上是关于无法在组合框c#(和xaml)中执行selectedIndexChanged的主要内容,如果未能解决你的问题,请参考以下文章
XAML 组合框 SelectionChanged 触发 OnLoad