【问题标题】:How to initiate a DateEdit with a random date如何使用随机日期启动 DateEdit
【发布时间】:2013-09-26 17:49:17
【问题描述】:

我是 WPF 和 c# 语言的新手,如果您能帮助我,我将不胜感激。

我有两个 DateEdit 控件和一个 GridControl。

我想在第一次编辑日期时分配一个随机日期,第二次日期编辑应该分配一个年份差异并且从这个日期开始。

应将相同的日期分配给 GridControl。

代码是:

    private void mTxtDateEditFchIni_EditValueChanged(object sender, EditValueChangedEventArgs e)
    {

        DateTime fecha = DateTime.Now.AddYears(1);
        mTxtDateEditFchFin.Text = fecha.ToString();

    }

mTxtDateEditfchIni 是第一个带有事件编辑值的文本编辑

我想在任何日期的第一个日期放置一个日期,然后第二个日期 (mTxtDateEditFchFin.Text) 自动放置第一个 dateedit 的年份差异

【问题讨论】:

  • 请分享您的尝试。这将有助于人们能够给你一个更具体的答案。
  • 好的,Erick andres 你知道会说西班牙语吗?
  • 不是所有的代码,请给大家点赞和先进的意见,请给我指导的线索
  • 我会说西班牙语,但我的意思是你应该发布你的代码。 StackOverflow 上的问题需要坚持英文。
  • 好的,我会发布代码:)

标签: c# wpf date


【解决方案1】:

这就是您在 WPF 中的做法(使用 DevExpress):

<Window x:Class="MiscSamples.DateRangeGridSample"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
        xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
        Title="DateRangeGridSample" Height="300" Width="300">
    <DockPanel>
        <StackPanel DockPanel.Dock="Top">
            <Label Content="Start Date:"/>
            <dxe:DateEdit EditValue="{Binding FocusedRow.StartDate, ElementName=Table}"/>
            <Label Content="End Date:"/>
            <dxe:DateEdit EditValue="{Binding FocusedRow.EndDate, ElementName=Table}"/>
            <Button Content="New" Click="NewRow" Margin="10"/>
        </StackPanel>

        <dxg:GridControl ItemsSource="{Binding}">
            <dxg:GridControl.View>
                <dxg:TableView x:Name="Table" ShowGroupPanel="False"/>
            </dxg:GridControl.View>
            <dxg:GridControl.Columns>
                <dxg:GridColumn FieldName="StartDate"/>
                <dxg:GridColumn FieldName="EndDate"/>
            </dxg:GridControl.Columns>
        </dxg:GridControl>
    </DockPanel>
</Window>

代码背后:

public partial class DateRangeGridSample : Window
{
    public ObservableCollection<DateRange> Data { get; set; }

    public DateRangeGridSample()
    {
        InitializeComponent();

        DataContext = Data = new ObservableCollection<DateRange>();
    }

    private void NewRow(object sender, RoutedEventArgs e)
    {
        Data.Add(new DateRange() {StartDate = DateTime.Today, EndDate = DateTime.Today.AddYears(1)});
    }
}

数据项:

public class DateRange: INotifyPropertyChanged
{
    private DateTime _startDate;
    private DateTime _endDate;

    public DateTime StartDate
    {
        get { return _startDate; }
        set
        {
            _startDate = value;
            OnPropertyChanged("StartDate");
        }
    }

    public DateTime EndDate
    {
        get { return _endDate; }
        set
        {
            _endDate = value;
            OnPropertyChanged("EndDate");
        }
    }

    public event PropertyChangedEventHandler PropertyChanged;

    protected virtual void OnPropertyChanged(string propertyName)
    {
        PropertyChangedEventHandler handler = PropertyChanged;
        if (handler != null) handler(this, new PropertyChangedEventArgs(propertyName));
    }
}

结果:

  • 您(通常)不处理 WPF 中的任何事件(按钮单击除外,它也可以替换为 Command
  • 一切都通过DataBinding 完成。如果您使用的是 WPF,您确实需要了解这一点。
  • WPF 岩石。只需将我的代码复制并粘贴到 File -&gt; New Project -&gt; WPF Application 中,然后自己查看结果。

【讨论】:

  • 非常感谢,我真的很感激。但是我的属性和几乎所有的东西都是不同的,但我真的很感激。(Y)
  • @aragongiuseppe 它有什么不同?您想发布您当前的代码吗?
  • @aragongiuseppe 检查我的 Stackoverflow 个人资料。我的电子邮件地址在那里。
  • 日期时间 fecha = DateTime.Now.AddYears(1); mTxtDateEditFchFin.Text = fecha.ToString(); mpxEnabledCtls(clsAppEnum.mexAccFrm.mvxAddNew); mDetelle_grdctl.View.IsEnabled = true; mDetalle_grctlvie.NewItemRowPosition = NewItemRowPosition.Bottom; mDetalle_grctlvie.MoveLastRow(); mDetelle_grdctl.View.MoveLastRow(); mDetelle_grdctl.View.AllowEditing = true; movar_isupdatemod = 假; mDetalle_grdctl.CurrentItem = fecha; }
  • @aragongiuseppe 您需要重构该代码并将所有这些属性放在 ViewModel 中,而不是使用后面的代码。
猜你喜欢
  • 1970-01-01
  • 2010-10-22
  • 2022-06-10
  • 2022-07-09
  • 2010-12-30
  • 2016-05-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多