我花了几个月的时间在StackOverflow上阅读问题,答案和建议。我是C#,。Net,WPF和MVVM的初学者。我正在为朋友的酒店开发一个PMS(物业管理系统)。
我经常在一些问题上被困了几天。这么多要学习!!
无论如何..这是一个令人烦恼的问题,我只是觉得我终于直接征求意见了......
我有一个带有一个冻结列的DataGrid,其中包含一系列设施(文本)。 以下列的标题包含Rooms(或更确切地说,房间类型)的名称。 有些房型有airco,有些房间没有,有些有电视,有些没有...这个数据网格应该填充复选框,以便宿舍经理指出哪些房型拥有哪些设施。
我有一个类,我想用于itemssource的绑定可观察集合。
public class RoomTypesAmenityItem
{
public string AmenityName { get; set; }
public IList<RoomTypeItem> RoomTypeList { get; set; }
public IList<bool> AmenitiesCheckList { get; set; }
public RoomTypesAmenityItem(string name, IList<RoomTypeItem> list, IList<bool> checklist)
{
AmenityName = name;
RoomTypeList = list;
AmenitiesCheckList = checklist;
}
}
带有bool的列表将用于设置复选框的IsChecked值。具有RoomTypeItem对象的列表应该有助于更快/更容易地识别已选中/取消选中哪个对象的复选框。 (我想我会用它,所以我把它放在那里......)
现在,我不知道如何继续。 我在考虑手动添加XAML中的冻结列。然后使用datatemplate自动生成其他列,使用IMultiValueConverter设置IsChecked值(传递列的索引和当前行的对象)。 我还想过不自动生成任何内容,只需手动添加列 ..但是我需要一个可以复制的模板列,并使用类似string.Format(AmenitiesCheckList)设置绑定[{0}],columnIndex)...
这些是我的想法..但我不知道如何让一个人上班。 这在我的脑海里一团糟。误解,我认为我理解但显然没有的事情,我还没有学到的东西,......
如果有人清楚地了解我的需要,可以帮我提出一些准确的建议或良好的代码......我会非常感激! 我从来没有问过帮助。指向体面的文档,提示要学习/阅读什么,以便能够自己做这些...欢迎所有人。但是我很想快速完成这个简单的小屏幕......所以代码会很精彩!
很抱歉这条长信息。
如果需要更多信息,请告诉我。?
(关于如何在点击一个复选框时处理这些更改..我猜这是另一个话题..但如果您有建议可以使用可能的解决方案,我将不胜感激..)