0

私の wpf アプリケーションでは、DayView と CustomView という 2 つのビュー クラスを作成しました。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
4

1 に答える 1

0

私の意見では、mvvm フレームワークを使用してソリューションをより構造化し、メッセンジャーを使用してビュー間の通信を行う方が適しています。

于 2013-07-08T10:03:02.903 に答える