我有一个DatePicker控件,也有一个命令来加载特定日期的数据。我如何获得DatePicker的值并将其传递给命令?
我的ViewModel类现在:
public class MainWindowViewModel
{
private readonly JiraHandler jiraHandler;
private DateTime date;
public ICommand DateChosen { get; }
public ObservableCollection<Issue> Issues { get; private set; } = new ObservableCollection<Issue>();
public MainWindowViewModel(JiraHandler jiraHandler)
{
this.jiraHandler = jiraHandler;
}
}
2条答案
按热度按时间idv4meu81#
XAML部分在结尾处应该类似于这样:
在视图模型ICommand中:
对于RelayCommand的实现,我可以推荐此链接:RelayCommand
在OnDateChosen(对象param)方法上,可以将"param"参数强制转换为DateTime。
祝你好运!
qqrboqgw2#
我推荐社区工具包mvvm,它提供了icommand、messenger、基类的relaycommand实现,并进行代码生成。
https://learn.microsoft.com/en-us/dotnet/communitytoolkit/mvvm/
下面是一个简单的示例,让您了解它是如何工作的:
以及视图模型:
您应该使用日期选择器中的DateSelected。这是一个可以为空的DateTime吗?
您可能会绑定选定的日期,命令将引用该值。
注:
总是在任何视图模型上实现inotifypropertychanged(以避免内存泄漏)。ObservableObject就是这样做的。还有一个ObservableValidator提供验证支持。
公共属性在另一个分部类文件中生成。
你可以自动获得你可以为属性改变或属性改变提供的方法。这允许你在日期选择器中选择日期时方便地操作。