I have a DatePicker for the user to select manually a date, and this date goes in as a value for a selected item in my datagrid.
however, it is displayed as '23/01/2023 12:00:00 AM', for example.
I want it to be displayed as '23/01/2023'.
I have my code as follows:
public partial class Shortlist : Window
{
List<ShortlistedClient1> shlclients = new List<ShortlistedClient1>();
public DateTime? SelectedDateFormat { get; private set; }
public Shortlist()
{
InitializeComponent();
DataContext = shlclients;
shlclients.Add(new ShortlistedClient1("Rich", "07515118265", "rich@gmail.com", "Glasgow", "Office", "MSc", "more than 3 years", "Yes", "No"));
shlclients.Add(new ShortlistedClient1("Steve", "07515118265", "steve@gmail.com", "Glasgow", "Construction", "High School", "more than 3 years", "Yes", "No"));
shlclients.Add(new ShortlistedClient1("Maria", "07485999005", "mb@gmail.com", "Edinburgh", "Office", "MSc", "more than 3 years", "No", "No"));
}
private void addInterviewDT(object sender, RoutedEventArgs e)
{
ShortlistedClient sc = dgr.SelectedItem as ShortlistedClient;
if (sc != null )
{
sc.DT = DatePick.SelectedDate;
}
then my class definition is like this:
public class ShortlistedClient1 : Client, INotifyPropertyChanged
{
private DateTime? _dt;
public DateTime? DT
{
get { return _dt; }
set { _dt = value; NotifyPropertyChanged(); }
}
public bool InterestedinVac { get; private set; }
public List<ShortlistedClient> clients { get; set; } = new List<ShortlistedClient1>();
public ShortlistedClient(string n, string p, string e, string l, string wt, string q, string we, string dl, string cc) : base(n, p, e, l, wt, q, we, dl, cc)
{
DT = new DateTime();
InterestedinVac = true;
}
What I have tried:
I have tried changing DateOnly? to DateTime? in my ShortlistedClient class, and then set { _dt = value.ToShortDateString(); .. } but it gives an error as well.
and I have tried
```
private DateTime _dt;
public DateTime DT
{
get { return _dt; }
set { _dt = value.Date; NotifyPropertyChanged(); }
}
public bool InterestedinVac { get; private set; }
public List<ShortlistedClient> clients { get; set; } = new List<ShortlistedClient>();
public ShortlistedClient(string n, string p, string e, string l, string wt, string q, string we, string dl, string cc) : base(n, p, e, l, wt, q, we, dl, cc)
{
DT = new DateTime();
InterestedinVac = true;
}
```
which gives:
```
Error CS0266 Cannot implicitly convert type 'System.DateTime?' to 'System.DateTime'. An explicit conversion exists (are you missing a cast?)