具体来说,如何使用添加到XRObservableCollection的元素/模型并使用它们在XAML列表框中生成行/列?
我已尝试自行完成此操作,但我的列表框仍为空,尽管已将元素添加到我的收藏中。
注意:此菜单适用于使用VS2008和Silverlight for Windows Embedded的Windows Embedded Compact 7设备,因此WPF中提供的许多功能不适用于此环境。
我所做的是初始化我想要在列表框中显示的元素的模型,如下所示:
DispCh->Initialize(ChannelNum,ChannelName,InputType,DispRange_Low,DispRange_High,MovingAvgFilter,EngUnit);
通过将值替换为这些变量,您将定义在列表框的每一列中显示的内容(暗示列表框的1行将包含6列;显示范围高和低在1列中)。
现在我将我的元素模型添加到集合中,如下所示:
pMainPage->m_pDispChModelCollection->Add(DispCh);
这很好用,因为当我在添加后检查收集计数时,它会增加。
现在,我相信我已正确完成绑定以获取集合并将其转换为列表框。为此,我执行以下操作:
XRValue value;
value.vType = VTYPE_PROPERTYBAG;
value.pPropertyBagVal = m_pDispCh_Model;
m_pReviewModeDispCh->m_pReviewMode_ChList->SetDataContext(&value);
m_pDispCh_Model->Set_ChannelCollection(m_pDispChModelCollection);
其中m_pDispCh_Model
是包含所有xaml初始化和绑定的模型类,m_pReviewModeDispCh
是XAML菜单的类定义,m_pReviewMode_ChList
是XAML列表框的IXRPtr,并且Set_ChannelCollection
获取m_pDispChModelCollection
并将其传递给m_pRevChList
,其中包含以下内容:
TBoundPointerProperty<IXREnumerable> m_pRevChList;
hResult = RegisterBoundProperty(L"ReviewModeDispChList", m_pRevChList);
现在,我可以发布代码,显示我为xaml菜单所做的事情,用于定义xaml类的c ++代码,用于元素模型的c ++类,以及使用这些类方法的c ++代码,但它不会跟随MVCE,所以相反,我想知道我所做的步骤背后的想法是否正确我提供的代码或至少是否有人可以指出我关于从C ++代码生成列表框网格的正确方向。