2016-06-13 80 views
0

我有一个DateTime属性,我想在其中保存日期和时间。所以我做了DatePickerWPF我可以选择日期。在它旁边,我输入了Combobox以及一些时间条目。Combobox SelectedValue.ToString始终为空WPF

1

现在我想加入我在combobox选择与DatePickerDateTime,这样的00:00:00默认值被通过我的价值,我在comboBox选择更换的时间。我怎么做?

这里有一些代码片段。我填写我的组合框那样:

for (int i = 0; i < 24; i++) 
     { 
      for (int j = 0; j < 2; j++) 
      { 
       string minute; 

       if (j == 0) 
       { 
        minute = "00"; 
       } 
       else 
       { 
        minute = "30"; 
       } 


       //view.cmbStartZeit.Items.Add(i.ToString() + ":" + j.ToString()); 
       //startZeit.Content = i.ToString() + ":" + minute; 
       //endZeit.Content = i.ToString() + ":" + minute; 

       StartTime.Items.Add(i.ToString("00") + ":" + minute); 
       EndTime.Items.Add(i.ToString("00") + ":" + minute); 
      } 

开始时间和结束时间是我的组合框

我想加入我的DatePicker和时间的组合框。我发现了一个代码示例,但它不起作用。

((DateTime)view.StartDate.SelectedDate).Add(TimeSpan.FromMinutes(Convert.ToDouble((view.StartTime.SelectedValue.ToString()).Split(':')[0]))).Add(TimeSpan.FromHours(Convert.ToDouble((view.StartTime.SelectedValue.ToString()).Split(':')[1]))); 

StartDate是我的DatePicker。它总是给我空在StartTime.SelectedValue.ToString()

如果有人知道另一种方式做到这一点,没有使用第三方套件或类似的东西,请告诉我。我必须使用本地WPF的东西(这是学校)

很多感谢

B.Pumpkin

+0

你能分享一些代码您正在使用的代码段和您遇到的错误? –

回答

1

运行一个类似的例子能正常工作越来越StartTime.SelectedValue.ToString()

还有其他的问题,但:

DateTime.Add是一种非不同诱变方法,只是返回一个新的DateTime对象。 所以你需要做的第一件事就是将新的DateTime设置为你的StartDate对象。此外,你正在解析分钟,并按相反的顺序分钟(但有一个更好的方法来解析它,见下文)。

这里是我做过什么,使其工作:

var time = TimeSpan.Parse(startTime.SelectedValue.ToString()); 

startDate.SelectedDate = ((DateTime)startDate.SelectedDate).Add(time); 

满(简单),工作示例:

<StackPanel> 
      <DatePicker Name="startDate" /> 
      <ComboBox Name="startTime" SelectionChanged="StartTime_OnSelected" /> 
</StackPanel> 

后面的代码:

public partial class MainWindow : Window 
{ 
    public MainWindow() 
    { 
     InitializeComponent(); 

     for (int i = 0; i < 24; i++) 
     { 
      for (int j = 0; j < 2; j++) 
      { 
       string minute; 

       if (j == 0) 
       { 
        minute = "00"; 
       } 
       else 
       { 
        minute = "30"; 
       } 


       //view.cmbStartZeit.Items.Add(i.ToString() + ":" + j.ToString()); 
       //startZeit.Content = i.ToString() + ":" + minute; 
       //endZeit.Content = i.ToString() + ":" + minute; 

       startTime.Items.Add(i.ToString("00") + ":" + minute); 
      } 
     } 
    } 

    private void StartTime_OnSelected(object sender, RoutedEventArgs e) 
    { 
     var time = TimeSpan.Parse(startTime.SelectedValue.ToString()); 

     // startDate.SelectedDate could be null, so do some checking before 
     startDate.SelectedDate = ((DateTime)startDate.SelectedDate).Add(time); 
    } 
} 
+0

为我工作:)谢谢! –