从其他窗口将新项目添加到列表框

Posted

技术标签:

【中文标题】从其他窗口将新项目添加到列表框【英文标题】:Add new Item to the listbox from other window 【发布时间】:2013-07-08 09:52:34 【问题描述】:

在我的 wpf 应用程序中,我创建了两个视图类,DayView 和 CustomView。在 DayView 中,有一个由一些条目组成的列表框。在列表框中,有一个带有 5 个文本框的堆栈面板。在我的 CustomView 类中,我还创建了带有 5 个文本框的堆栈面板。当我将数据输入到 CustomView 的那些文本框中并单击保存按钮时,应该创建新条目并将数据保存在 DayView 的相应文本框中。

CustomView 类:

namespace TimeSheet

/// <summary>
/// Interaction logic for CustomView.xaml
/// </summary>
public partial class CustomView : Window


    public List<Harvest_Project> projectList  get; set; 

    public List<Harvest_Client> clientList  get; set; 

    public Harvest_Project selectedProjectid  get; set; 

    public Harvest_Client selectedClientid  get; set; 

    private string client  get  return ClientText.Text;  set  ClientText.Text=value; 
    private string application  get  return ApplicationText.Text;  set  ApplicationText.Text = value;  
    private string starttime  get  return StartTimeText.Text;  set  StartTimeText.Text = value;  
    private string stoptime  get  return StopTimeText.Text;  set  StopTimeText.Text = value;  
    private string task  get  return TaskText.Text;  set  TaskText.Text = value;  
    private string project  get  return ProjectText.Text;  set  ProjectText.Text = value;  

    public CustomView()
    
        InitializeComponent();
        this.DataContext = this;
        Globals._globalController.setCustomViewWindow(this);

        clientList = Globals._globalController.harvestManager._CLIENTLIST;
        projectList = Globals._globalController.harvestManager._PROJECTLIST;

    

    private void SaveButton_Click(object sender, RoutedEventArgs e)
    

        if (sender is Harvest_TimeSheetEntry)
        

            //Harvest_TimeSheetEntry entry = new Harvest_TimeSheetEntry();

            //if (!entry.isSynced)
            //
            //    entry.ClientNameBinding = client;
            //    entry.ApplicationNameBinding = application;
            //    entry.StartTimeBinding = starttime;
            //    entry.StopTimeBinding = stoptime;
            //    entry.TaskNameBinding = task;
            //    entry.ProjectNameBinding = project;
            //

            Globals._globalController.getDayViewWindow.Show();
            this.Hide();
        
   

    private void ClientComboBoxChanged(object sender, SelectionChangedEventArgs e)
    
        string text = (sender as ComboBox).SelectedItem.ToString();
    

    private void ProjectComboBoxChanged(object sender, SelectionChangedEventArgs e)
    
        string text = (sender as ComboBox).SelectedItem.ToString();
    



我不明白,我应该如何将这些数据保存在 DayView 列表框中。请提出一些方法。!

这是 DayView 窗口

[1]: http://i.stack.imgur.com/1Qi0e.png

这是 CustomView 窗口!

[2]: http://i.stack.imgur.com/mACxR.png

【问题讨论】:

【参考方案1】:

在我看来,使用 mvvm 框架使您的解决方案更有条理,然后使用 Messenger 在您的视图之间进行交流更合适。

【讨论】:

以上是关于从其他窗口将新项目添加到列表框的主要内容,如果未能解决你的问题,请参考以下文章

将项目从不同的类添加到列表框

使用if语句将项目从vb中的结构文件添加到列表框?

保存列表框中的选定项目以供其他类使用

Thymeleaf/Spring - 将项目从组合框添加到表中

Cassandra&Spark:我可以将项目添加到行以从行列表创建数据框

无法手动将项目添加到通过列表迭代填充的列表框