【问题标题】:How to add data to ObservableCollection with a DatePicker and a TextBox如何使用 DatePicker 和 TextBox 将数据添加到 ObservableCollection
【发布时间】:2017-05-09 19:52:28
【问题描述】:

您好,我想从这里添加数据:

<DatePicker x:Name="datePicker" HorizontalAlignment="Left" Margin="70,40,0,0" VerticalAlignment="Top" RenderTransformOrigin="-0.338,0.312" />
<TextBox x:Name="titleTextBox" HorizontalAlignment="Left" Margin="66,263,0,0" TextWrapping="Wrap" Text="Titre" VerticalAlignment="Top" Width="300"/>

在我的:

ObservableCollection<Rdv>

这是我的班级 Rdv:

class Rdv
{
    public string Title { get; set; }
    public string Subject { get; set; }
    public DateTime Date { get; set; }

    public Rdv(string title, string subject, DateTime date)
    {
        Title = title;
        Subject = subject;
        Date = date;
    }
}

我不知道如何继续。我需要绑定 Datepicker 和 Textbox 吗?如何从这些项目中取出数据并使用这些数据创建一个新的 ObservableCollection。

感谢您阅读本文,希望我没有在句子上犯错,并感谢您的帮助。

【问题讨论】:

  • 你的问题太模糊了。我们不知道您究竟想在 GUI 中做什么。请在您的问题中添加更多详细信息。您如何/在哪里使用 XAML GUI 中的 ObservableCollection? DatePicker 在哪里出现? (比如,集合和 DatePicker 之间的关系是什么;它是项目模板的一部分吗?)
  • @elgonzo 我猜他只是想将这些控件的属性绑定到视图模型属性,并添加一个按钮来执行一个命令,该命令使用当前值创建一个新的Rdv。为了简单起见,我建议使用 Click 事件而不是命令。
  • @EdPlunkett,因为他有一个 Rdv 对象的集合,它使用类似 ItemsContol 的东西指向他,并作为 itemtemplate 的一部分绑定到项目。或者他可能只尝试绑定到选定的项目。或者也许他有一个我目前无法想到的完全不同的想法。只有他自己可以告诉我们... :)
  • 是的,我将 MainView 分为三部分,左侧用于发送值和按钮,中间用于显示所有 Rdv,右侧用于来自特定 Rdv 的所有信息。我使用 MVVLight 和 dataContext。单击按钮时,我想从 Datepicker 和 Textbox 发送数据,但我不知道如何编写函数 click_event ( AddRdv() )。我已经做了其他事情,我只需要帮助来为每次点击我的按钮创建一个新的 Rdv
  • 我解释得不好,所以如果你不清楚,我可以发送我所有的 MainViewModel.cs、XAML 和 MainPage.xaml.cs,但我认为 Ed plunkett 理解。

标签: c# xaml data-binding datepicker


【解决方案1】:

我想这样做:

 public void AddRdv()
    {
        _rdv.Add(new Rdv() {Title = titleTextBox.Text, Subject = subjectTextBox.Text, Date = dateTextBlock.date});
    }

但上下文中不存在名称 titleTextBox、subjectTextBox 和 dateTextBlock。我使用 Datacontext 也许是因为这个。

public ObservableCollection<Rdv> Rdv
    {
        get { return _rdv; }
        set
        {
            _rdv = value;
            RaisePropertyChanged();
        }
    }

    private Rdv _selectedRdv;

    public Rdv SelectedRdv
    {
        get { return _selectedRdv; }
        set
        {
            _selectedRdv = value;
            RaisePropertyChanged();
        }
    }

    public MainViewModel()
    {
        Rdv = new ObservableCollection<Rdv>()
        {

            new Rdv("Exemple", "Lorem ipsum dolor sit amet, consectetur adipiscing elit.", new DateTime(2009, 8, 8)),

        };

        //SelectedRdv = Rdv[0];
    }

    public void AddRdv()
    {
        _rdv.Add(new Rdv() {Title = titleTextBox.Text, Subject = subjectTextBox.Text, Date = dateTextBlock.date});
    }

    public void DeleteSelectedRdv()
    {
        Rdv.Remove(SelectedRdv);
        SelectedRdv = null;
    }
}

}

【讨论】:

    猜你喜欢
    • 2011-05-20
    • 2013-11-20
    • 2017-07-30
    • 1970-01-01
    • 2020-09-16
    • 2018-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多