【问题标题】:C# WPF DatePicker BindingC# WPF DatePicker 绑定
【发布时间】:2017-09-06 16:59:55
【问题描述】:

我对 DatePicker 的 Binding 可为空属性有疑问。运行我的应用程序时我有什么 first run 但是当我将日期设置在从今天到 7 天的范围内时,它工作正常。 如果我在一周后选择日期,则属性设置为 null。 week after

public class Pledge
{
    public int ID { get; set; }
    public string ClientName { get; set; }
    public string Passport { get; set; }
    public string IssuedBy { get; set; }
    [Column(TypeName = "Date")]
    public DateTime? Birthday { get; set; }
    [Column(TypeName = "Date")]
    public DateTime? IssuedDate { get; set; }
    public string Registration { get; set; }
    public string Phone { get; set; }
    public string Model { get; set; }
    public string SerialNumber { get; set; }
    [Column(TypeName = "Date")]
    public DateTime? ReceiptDate { get; set; }
    [Column(TypeName = "Date")]
    public DateTime? IssueDate { get; set; }
    public decimal? Result { get; set; }
    public decimal? MoneyForClient { get; set; }
    public int? Procent { get; set; }
}

XAML:

<StackPanel>
                <TextBlock Text="ФИО:" Margin="4"/>
                <TextBox Text="{Binding Path=ClientName, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
                <TextBlock Text="Номер телефона:" Margin="4"/>
                <xctk:MaskedTextBox Text="{Binding Path=Phone, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Mask="+7 (000) 000-00-00"/>
                <TextBlock Text="Дата рождения:" Margin="4"/>
                <DatePicker Text="{Binding Path=Birthday, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
                <TextBlock Text="Паспорт" Margin="4"/>
                <xctk:MaskedTextBox Text="{Binding Path=Passport, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Mask="0000-000000"/>
                <TextBlock Text="Дата выдачи:" Margin="4"/>
                <DatePicker Text="{Binding Path=IssuedDate, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
                <TextBlock Text="Выдан:" Margin="4"/>
                <TextBox Text="{Binding Path=IssuedBy, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" TextWrapping="Wrap" AcceptsReturn="True" Height="100"/>
                <TextBlock Text="Прописка:" Margin="4"/>
                <TextBox Text="{Binding Path=Registration, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" TextWrapping="Wrap" AcceptsReturn="True" Height="100"/>
                <TextBlock Text="Модель:" Margin="4"/>
                <TextBox Text="{Binding Path=Model, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
                <TextBlock Text="Серийный номер(IMEI):" Margin="4"/>
                <TextBox Text="{Binding Path=SerialNumber, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
                <TextBlock Text="Сумма на выдачу:" Margin="4"/>
                <TextBox Text="{Binding Path=MoneyForClient, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
                <TextBlock Text="Процент:" Margin="4"/>
                <TextBox Text="{Binding Path=Procent, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
                <TextBlock Text="Дата приема:" Margin="4"/>
                <DatePicker Text="{Binding Path=ReceiptDate, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
                <TextBlock Text="Дата выдачи:" Margin="4"/>
                <DatePicker Text="{Binding Path=IssueDate, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
            </StackPanel>

【问题讨论】:

  • 那么问题是什么?
  • 我无法重现此问题。

标签: c# wpf binding datepicker


【解决方案1】:

找到问题。我混淆了属性。而不是“文本”,而是需要绑定到 DatePicker 中的“选定日期”。 曾经:

<DatePicker Text="{Binding Path=MoneyForClient, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>

应该是:

<DatePicker SelectedDate="{Binding Path=MoneyForClient, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>

【讨论】:

  • 奇怪,TextBox 没有 SelectedDate 属性,但 DatePicker 有!
  • TextBox 与日期无关,这有什么意义???你的回答有些不对劲。检查一下。
  • 纠正注意力不集中
猜你喜欢
  • 1970-01-01
  • 2013-06-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-24
  • 2011-02-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多