C# 使用ObservableCollection填充listview时出现问题
当我按下按钮时,listview不填充。有人能帮我吗?C# 使用ObservableCollection填充listview时出现问题,c#,wpf,listview,C#,Wpf,Listview,当我按下按钮时,listview不填充。有人能帮我吗? 公共可见收集支票 public ObservableCollection<CheckInData> CheckInCollection { get { return _CheckInCollection; } } public class CheckInData { public string RoomNumber { get; set; }
公共可见收集支票
public ObservableCollection<CheckInData> CheckInCollection
{
get { return _CheckInCollection; }
}
public class CheckInData
{
public string RoomNumber { get; set; }
public decimal Price { get; set; }
public string Currecny { get; set; }
public decimal Discount { get; set; }
public string CheckOut { get; set; }
public int TotalDay { get; set; }
public decimal TotalPrice { get; set; }
public int CheckOutYear { get; set; }
public int CheckOutMonth { get; set; }
public int CheckOutDay { get; set; }
public Boolean IncToday { get; set; }
}
private void btnAdd_Click(object sender, RoutedEventArgs e)
{
string _CheckOut = "" + datePicker1.SelectedDate.Value.Day.ToString() + "/" + datePicker1.SelectedDate.Value.Month.ToString() + "/" + datePicker1.SelectedDate.Value.Year.ToString() + "";
int _TotalDays;
decimal _TotalPrice;
Boolean _IncToday;
if (cbIncToday.IsChecked == true)
{
_IncToday = true;
var checkIn = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day);
var checkOut = new DateTime(datePicker1.SelectedDate.Value.Year, datePicker1.SelectedDate.Value.Month, datePicker1.SelectedDate.Value.Day + 1);
TimeSpan ts = checkOut - checkIn;
_TotalDays = Convert.ToInt32(ts.Days);
_TotalPrice = _TotalDays * Convert.ToDecimal(txtPrice.Text);
}
else
{
_IncToday = false;
var checkIn = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day);
var checkOut = new DateTime(datePicker1.SelectedDate.Value.Year, datePicker1.SelectedDate.Value.Month, datePicker1.SelectedDate.Value.Day);
TimeSpan ts = checkOut - checkIn;
_TotalDays = Convert.ToInt32(ts.Days);
_TotalPrice = _TotalDays * Convert.ToDecimal(txtPrice.Text);
}
_CheckInCollection.Add(new CheckInData
{
RoomNumber = cbRooms.Text,
Price = Convert.ToDecimal(txtPrice.Text),
Currecny = cbCurreny.Text,
Discount = Convert.ToDecimal(txtDiscount.Text),
CheckOut = _CheckOut,
CheckOutYear = datePicker1.SelectedDate.Value.Year,
CheckOutMonth = datePicker1.SelectedDate.Value.Month,
CheckOutDay = datePicker1.SelectedDate.Value.Day,
IncToday = _IncToday,
TotalDay = _TotalDays,
TotalPrice = _TotalPrice
});
}
public observeablecollection CheckInCollection
{
获取{return\u CheckInCollection;}
}
公共类CheckInData
{
公共字符串RoomNumber{get;set;}
公共十进制价格{get;set;}
公共字符串Currecny{get;set;}
公共十进制折扣{get;set;}
公共字符串签出{get;set;}
公共整数全天{get;set;}
公共十进制总价{get;set;}
公共int签出年份{get;set;}
public int CheckOutMonth{get;set;}
公共int签出日{get;set;}
公共布尔值{get;set;}
}
私有无效btnAdd_单击(对象发送者,路由目标e)
{
字符串_CheckOut=”“+datePicker1.SelectedDate.Value.Day.ToString()+“/”+datePicker1.SelectedDate.Value.Month.ToString()+“/”+datePicker1.SelectedDate.Value.Year.ToString()+”;
整数天;
十进位(总价格);;
布尔!;
if(cbIncToday.IsChecked==true)
{
_IncToday=正确;
var checkIn=new DateTime(DateTime.Now.Year、DateTime.Now.Month、DateTime.Now.Day);
var checkOut=新日期时间(datePicker1.SelectedDate.Value.Year、datePicker1.SelectedDate.Value.Month、datePicker1.SelectedDate.Value.Day+1);
TimeSpan ts=签出-签入;
_TotalDays=转换为32(ts.Days);
_TotalPrice=_TotalDays*Convert.ToDecimal(txtPrice.Text);
}
其他的
{
_IncToday=假;
var checkIn=new DateTime(DateTime.Now.Year、DateTime.Now.Month、DateTime.Now.Day);
var checkOut=新日期时间(datePicker1.SelectedDate.Value.Year、datePicker1.SelectedDate.Value.Month、datePicker1.SelectedDate.Value.Day);
TimeSpan ts=签出-签入;
_TotalDays=转换为32(ts.Days);
_TotalPrice=_TotalDays*Convert.ToDecimal(txtPrice.Text);
}
_CheckInCollection.Add(新的CheckInData
{
RoomNumber=cbRooms.Text,
Price=Convert.ToDecimal(txtPrice.Text),
Currecny=cbCurreny.Text,
折扣=Convert.ToDecimal(txtdepriff.Text),
结帐=\u结帐,
CheckOutYear=datePicker1.SelectedDate.Value.Year,
CheckOutMonth=datePicker1.SelectedDate.Value.Month,
CheckOutDay=datePicker1.SelectedDate.Value.Day,
IncToday=\u IncToday,
TotalDay=\u TotalDays,
总价=_总价
});
}
XAML:
Title=“CheckIn”Height=“473”Width=“682”WindowStartupLocation=“CenterScreen”ResizeMode=“NoResize”DataContext=“{Binding RelativeSource={RelativeSource Self}”>
试试这个
<ListView Margin="8,8,5,1.04" ItemsSource="{Binding Path=CheckInCollection UpdateSourceTrigger = PropertyChanged}">
在ListView元素上,应该将ItemsSource属性绑定到集合,而不是DisplayMemberPath
<ListView Margin="8,8,5,1.04" ItemsSource="{Binding Path=CheckInCollection UpdateSourceTrigger = PropertyChanged}">