You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android设备中DatePicker绑定DateTime设置MaximumDate的正确语法

正确实现方式

要在Android设备上通过绑定为DatePicker设置MaximumDate,核心是正确使用OnPlatform并指定类型参数,同时确保绑定语法和命名空间正确。以下是可运行的XAML代码:

首先确保页面头部引入System命名空间:

xmlns:sys="clr-namespace:System;assembly=System.Runtime"

然后编写DatePicker的配置:

<DatePicker>
    <DatePicker.MaximumDate>
        <OnPlatform x:TypeArguments="sys:DateTime">
            <On Platform="Android" Value="{Binding FromMaximumDate}" />
            <!-- 其他平台可设置默认值,或省略使用控件默认的最大日期 -->
            <On Platform="iOS" Value="2100-12-31" />
            <On Platform="Windows" Value="2100-12-31" />
        </OnPlatform>
    </DatePicker.MaximumDate>
</DatePicker>

为什么之前的写法报错?

  • 第一种直接在MaximumDate属性内写OnPlatform绑定:未明确指定x:TypeArguments,XAML解析器无法将绑定结果正确转换为DateTime类型,触发类型转换失败。
  • 第二种嵌套OnPlatform但报错:大概率是命名空间引用错误(比如未正确引入sys命名空间),或者未通过Value属性指定绑定(直接写{Binding ...}会被当作节点内容而非属性值)。

额外注意事项

ViewModel中的FromMaximumDate必须是可绑定的DateTime类型属性,以.NET MAUI为例:

[ObservableProperty]
private DateTime _fromMaximumDate = DateTime.Now;

内容的提问来源于stack exchange,提问作者galex

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 12:46:00