【问题标题】:WPF calendar deselects selected dates on LostFocusWPF 日历取消选择 LostFocus 上的选定日期
【发布时间】:2018-03-18 07:25:30
【问题描述】:

我在我的 WPF 项目中添加了一个日历控件,如下所示;

<Calendar x:Name="DatesCalendar" SelectionMode="SingleRange" Grid.Row="1" Grid.Column="1" HorizontalAlignment="Center" Margin="0,10" VerticalAlignment="Center" />

这个想法是当用户选择一个日期范围并单击搜索按钮时,我会从数据库中获取该范围内的条目。每当用户单击搜索按钮时,日历日期就会被取消选择。当日历失去焦点时,我希望最后选择的日期保持选中状态。

【问题讨论】:

  • 为什么不用两个日期时间选择器控件来代替?
  • 我认为在日历上选择日期看起来更整洁,但如果日历不起作用,我可能不得不下定决心使用时间选择器控件。
  • 日期时间选择器显示一个流行的日历。所以你没有失去任何功能。在我的一个应用程序中,而不是 WPF,我实际上有两个日历。一个用于开始日期,一个用于结束日期。
  • 你能选择一个有 1 个 DateTimePicker 控件的范围吗?我的意思是自然地,日期在被选中后应该在日历中保持选中状态吗?
  • 您需要将日历绑定到变量吗?

标签: c# wpf xaml


【解决方案1】:

我读到了有关此问题的可能答案here。为了完整起见,我复制了那里提供的信息:

Calendar.SelectedDates 是一个只读属性。因此,您不能在XAML 中将Binding 设置为它。

但是,您可以这样做:

1) 将System.Windows.Interactivity.dll 添加到您的项目引用

2) 将Microsoft.Expression.Interactions.dll 添加到您的项目引用

3) 将以下 namespace 前缀添加到您的 XAML

`xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"`
`xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions"`

4) XAML

<sdk:Calendar Name="Cal" SelectionMode="MultipleRange" >
     <i:Interaction.Triggers>
         <i:EventTrigger EventName="SelectedDatesChanged">
             <i:InvokeCommandAction Command="{Binding SelectionCommand}"
                                    CommandParameter="{Binding SelectedDates, ElementName=Cal}"/>
        </i:EventTrigger>
     </i:Interaction.Triggers>
</sdk:Calendar>`

5) 视图模型

public class ViewModel
{
    public ViewModel()
    {
       this.SelectionCommand = new DelegateCommand<object>(this.SelectionChanges );
    }

    public ICommand SelectionCommand { get; private set; }

    private void SelectionChanges(object sender)
    {
             SelectedDatesCollection dates = sender as SelectedDatesCollection;
    } 
}

我自己没有测试过。它对你有帮助吗?此答案顶部的链接中有更多信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-06
    • 1970-01-01
    • 1970-01-01
    • 2021-10-29
    相关资源
    最近更新 更多