- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有这个自定义 View :
public class VolosDatePicker : Button {
private DatePicker _Picker;
private IViewContainer<View> _ParentLayout;
public static readonly BindableProperty DateProperty = BindableProperty.Create(nameof(Date), typeof(DateTime?), typeof(VolosDatePicker));
public DateTime? Date {
get { return (DateTime?)GetValue(DateProperty); }
set { SetValue(DateProperty, value); }
}
private string TextFormat = Utente.UteLoggato.formatoData;
private string DefaultText = "click me";
//public static readonly BindableProperty DefaultTextProperty = BindableProperty.Create<VolosDatePicker, string>(p => p.DefaultText, "Pick Date...");
public VolosDatePicker() {
//create the datepicker, make it invisible on the form.
_Picker = new DatePicker {
IsVisible = false
};
//handle the focus/unfocus or rather the showing and hiding of the dateipicker
_Picker.Focused += _Picker_Focused;
_Picker.Unfocused += _Picker_Unfocused;
//command for the button
Command = new Command((obj) => {
//try to get the parent layout and add the datepicker
if (_ParentLayout == null) {
_ParentLayout = _GetParentLayout(Parent);
if (_ParentLayout != null) {
//add the picker to the closest layout up the tree
_ParentLayout.Children.Add(_Picker);
} else {
throw new InvalidOperationException("The DatePickerButton needs to be inside an Layout type control that can have other children");
}
}
//show the picker modal
_Picker.Focus();
});
_UpdateText();
}
private IViewContainer<View> _GetParentLayout(Element Parent) {
//StackLayout, RelativeLayout, Grid, and AbsoluteLayout all implement IViewContainer,
//it would be very rare that this method would return null.
IViewContainer<View> parent = Parent as IViewContainer<View>;
if (Parent == null) {
return null;
} else if (parent != null) {
return parent;
} else {
return _GetParentLayout(Parent.Parent);
}
}
void _Picker_Focused(object sender, FocusEventArgs e) {
//default the date to now if Date is empty
_Picker.Date = Date ?? DateTime.Now;
}
void _Picker_Unfocused(object sender, FocusEventArgs e) {
//this always sets.. can't cancel the dialog.
Date = _Picker.Date;
_UpdateText();
}
protected override void OnBindingContextChanged() {
base.OnBindingContextChanged();
_UpdateText();
}
private void _UpdateText() {
//the button has a default text, use that the first time.
if (Date != null) {
//default formatting is in the FormatProperty BindableProperty
base.Text = Date.Value.ToString(TextFormat);
} else {
base.Text = DefaultText;
}
}
protected override void OnPropertyChanging(string propertyName = null) {
//set this so there is an old date for the DateChangedEventArgs
base.OnPropertyChanging(propertyName);
if (propertyName == DateProperty.PropertyName) {
//_OldDate = Date;
_UpdateText();
//if (_OldDate != null && Date != null) DateSelected(this, new DateChangedEventArgs((DateTime)_OldDate, (DateTime)Date));
}
}
protected override void OnPropertyChanged(string propertyName = null) {
base.OnPropertyChanged(propertyName);
if (propertyName == DateProperty.PropertyName) {
_UpdateText();
}
}
}
在我的 XAML 页面中,我有这个绑定(bind):
<view:VolosDatePicker Date="{Binding WoSpesaDett.DataSpesa}" Grid.Row="0" Grid.Column="1" />
我是这样设置这个日期的:
WoSpesaDett.DataSpesa = new System.DateTime(2015, 5, 18);
RaisePropertyChanged(() => WoSpesaDett);
在我使用此方法之前,DatePicker
的日期值设置正确,但在我尝试使用控件选择器设置日期后,上述方法停止工作。
如果我从控件选取器中选择任何日期,然后尝试使用上述方法以编程方式设置日期,则日期不会更改。
它似乎失去了与属性 WoSpesaDett.DataSpesa
的绑定(bind)。
最佳答案
根据documentation :
Optionally, when creating a BindableProperty instance, the following parameters can be specified:
The binding mode. This is used to specify the direction in which property value changes will propagate. In the default binding mode, changes will propagate from the source to the target.
尝试将绑定(bind)的模式设置为 TwoWay
,如下所示:
<view:VolosDatePicker Date="{Binding WoSpesaDett.DataSpesa, Mode=TwoWay}" Grid.Row="0" Grid.Column="1" />
或者编辑 BindableProperty
本身。
希望对您有所帮助!
关于c# - Xamarin 自定义 DatePicker 失去绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47797811/
我正在尝试使用 720Kb 日期选择器。 https://github.com/720kb/angular-datepicker 使用简单示例时: 我收到打击错误: angular.js:1
我开始使用react-datepicker组件。 https://github.com/Hacker0x01/react-datepicker 我运行了该示例,现在我想对其进行调整,使其没有初始值。示
我正在使用 Angular-ui 日期选择器,除了日期选择器的初始状态外,一切实际上都工作正常。我选择日期后,看起来不错。见下文: 初始状态 在选择器中选择日期后 所以,显然我在第一种情况下得到了日期
我需要为回历日期设置日期选择器。我可以使用 jquery datepicker 或 bootstrap datepicker。但是我写了这段代码
在选择范围时,我遇到了 jquery UI datepicker 的一个奇怪问题。在提出问题之前,我正在研究许多其他人编写的代码。他们以优化的顺序包含了 jquery 工具和 UI,因此所有功能都可以
我有两个剑道 DatePickers 来选择工作的开始和结束日期。作业由多个任务组成,其中包含自己的完成日期(任务在网格中列出,每条记录使用 kendo DatePicker 选择完成日期) 当用户设
我想将功能添加到 Material 日期选择器,以便能够选择周.. 因此,当我从一行中选择一个日期时,我希望它输出从一周开始到一周结束的日期范围。 我之前在常规 jquery 日历上这样做过--检查照
在 SwiftUI 中使用新的 (iOS 14) DatePicker,它按预期工作并且在模拟器和设备上看起来很好,但是一旦日历弹出,我会在输出窗口中收到几行警告。这有点烦人! 虽然日志贴在下面,但看
我将如何创建 doctrine_orm_datetime_range使用 jQuery UI 日期选择器的 Sonata Admin Bundle 中的过滤器? 我尝试了以下方法,但不起作用: pro
有人知道如何设置 gem bootstrap-datepicker-rails 吗?我按照 http://rubydoc.info/gems/bootstrap-datepicker-rails/0.
在 kartik DatePicker Yii2 中有没有办法 - 我可以禁用大于当前日期的日期? 例如:如果今天是 2016 年 3 月 14 日,则应禁用 2016 年 3 月 15 日的日历日期
在 UIDatePicker 我们可以做这样的事情 datePicker.timeZone = TimeZone(secondsFromGMT: 5*60*60) 为了指定日期选择器的时区。 但是如何
我在 FullCalendar ( http://www.eyecon.ro/datepicker/ ) 页面正下方添加了一个 datePicker ( http://fullcalendar.io
我在一个 Polymer 项目中有两个 Vaadin-datepickers。一个有开始日期,一个有结束日期。我想确保结束日期总是在开始日期之后。我阅读了 API 文档,他们说您可以使用 min ma
我正在Angular 6中搜索Datepicker,它可以显示基于回历日历的阿拉伯日期。 似乎找不到一个。是否有可用的东西,或者我们需要从头开始构建它。 最佳答案 Ng bootstrap或angul
JavaFX8 中是否有一种方法可以从 Java 代码中选择 DatePicker 中的日期(作为文本)?我想以这样一种方式激活带有 DatePicker 的控件,用户可以在不使用鼠标的情况下编辑日期
我在一个 Polymer 项目中有两个 Vaadin-datepickers。一个有开始日期,一个有结束日期。我想确保结束日期总是在开始日期之后。我阅读了 API 文档,他们说您可以使用 min ma
我正在尝试验证datepicker,因为startDate应始终小于EndDate。如果我手动更改日期,则 StartDate 有效,但 EndDate 无效。 我的JavaScript代码: $(d
我是 jquery 和 javascript 的菜鸟。因此,虽然我看过很多解决我的问题的 SO 帖子,但我无法将各种解决方案“组装”成适合我的东西。 我的上下文:查询结果显示在表单中。在每一行中,其中
我正在开发 Windows Phone 8.1 应用程序。我正在尝试使用 DatePickerFlyout 但没有取得适当的成功。我正在选择日期并尝试用选定的日期设置按钮内容,但它没有设置。当我调试以
我是一名优秀的程序员,十分优秀!