我有一个包含几列的SQL数据库:
StartTime EndTime MsgType Description
DateTim2 DateTim2 2 Some Text
DateTim2 DateTim2 2 Some Text1
DateTim2 DateTim2 1 Some Text2
DateTim2 DateTim2 3 Some Text3
列MsgType
的值可以为1、2或3。我正在创建一个搜索选项框,其中WPF可以在start/end time
上进行过滤,并且还希望使用Msgtype
进行过滤。搜索选项框中有一个“应用”按钮来执行存储过程。 When MsgType = 0
SP显示所有返回所有MsgType。
我已经使用Linq到SQL类来使存储过程起作用:
LinqDataContext dc = new LinqDataContext(Properties.Settings.Default.ConnectionString);
private void ApplyButton_Click(object sender, RoutedEventArgs e)
{
spGetHistoric.ItemsSource = dc.spMessages_GetHistoric(1033, BeginDate.SelectedDate, StopDate.SelectedDate, 0 <this is the msgType>);
}
当我手动将MsgType设置为值之一时,它可以正常工作,但是如何使它与组合框一起使用?
答案 0 :(得分:0)
有多种方法,在许多情况下,您将ComboBox绑定到数据源,然后以不同的方式访问该值。但是,基本方法是这样的:
<ComboBox Name="TheComboBox" SelectionChanged="TheComboBox_SelectionChanged">
<ComboBoxItem Tag="1">One</ComboBoxItem>
<ComboBoxItem Tag="2">Two</ComboBoxItem>
<ComboBoxItem Tag="3">Three</ComboBoxItem>
</ComboBox>
然后:
int msgType = int.Parse((TheComboBox.SelectedItem as ComboBoxItem).Tag as string);
当MsgType是一个枚举时,您将进行不同的解析,并且如果以编程方式或通过数据绑定填充ComboBox,则您将已经使用了正确的类型而不是字符串解析。