这是我的收藏:
public ObservableCollection<CheckOutData> _CheckOutCollection = new ObservableCollection<CheckOutData>();
public ObservableCollection<CheckOutData> CheckOutCollection
{
get { return _CheckOutCollection; }
}
public class CheckOutData
{
public int ID { get; set; }
public string RoomType { get; set; }
public string RoomNumber { get; set; }
public decimal RoomPrice { get; set; }
public string RoomPriceWithCurrency { get; set; }
public decimal Discount { get; set; }
public decimal DiscountedPrice { get; set; }
public string DiscountedPriceWithCurrency { get; set; }
public string CheckIn { get; set; }
public string CheckOut { get; set; }
public int TotalDay { get; set; }
public string CheckOutHour { get; set; }
}
我有另一个窗口要执行以下操作:添加CheckOutData公共字符串serviceName {get; set} 这怎么办?我甚至没有在我的孩子窗口看到checkoutdata。 所以我的主要任务是在checkoutdata中添加新集合,然后重新绑定datagrid。任何人都可以帮助我吗?
私人CheckOut m_parent;
public AddActionService(CheckOut parent)
{
InitializeComponent();
m_parent = parent;
}
答案 0 :(得分:1)
您可能需要考虑某种事件聚合器。这样,任何表单的代码(或ViewModel / Presenter,如果您使用MVVM / MVP)都可以发送由聚合器拾取并分发给已订阅该事件的任何其他表单/ ViewModel / Presenter的消息。这种方法意味着您的表单不再紧密耦合在一起。他们根本没有相互提及。他们通过事件聚合器进行通信,他们甚至不知道是否有任何对象正在监听这些事件。
您还可以考虑更进一步,采用“域事件”样式,这样您不仅可以在UI中对这些事件做出反应,还可以对系统中其他地方的域对象做出反应,包括通过外部发送消息用于调用Web服务,更新数据库,将消息放入队列等的服务。