日期:2014-05-18  浏览次数:20943 次

WPF如何实现List内容的数据绑定
最近我用C#实现了调用C++编写的DLL,现在用WPF给C#做个界面,
C++ 中我定义了2个类,CPlayerDatabase 和 CPlayer

1.伪码如下:
C/C++ code

class CPlayerDatabase
{
   void AddPlayer();
   void DisPlay();
   vector<CPlayer> playerList;
}

class CPlayer
{
   int Number;
   string Position;
   string Name;

   //打印出Number,position,和Name
   void showInfo();
}



每用AddPlayer添加一个Player的信息,我都会push进入Vector中。然后通过playerList来输出所有Database 的内容。

2. 第二部我在C++代码中定义了2个接口函数,DB_Display()和 DB_Addplayer(), 并且把他们定义成(__declexport)类型用做DLL的接口函数。
NOTE: 我已经成功用C#调用到了C++编写的DLL。用到了Marshal技术。


3. 这一部中我用WPF设计界面,我都问题是如何通过XAML绑定到CPlayerDatabase 中的playerList 然后显示呢? 之前的Console Application 直接简单调用"cout<<....<<endl"就可以打印了,当然肯定是不能用到WPF中了,请问各位朋友我该怎么做这个绑定?谢谢啦

------解决方案--------------------
如果你在WPF中需要匹配控制台输出的话,那么还是写c++程序输出算了。
------解决方案--------------------
探讨

问题我自己解决了,只要把C++中Player写成结构体并且Marshal到C#中,即在C#中用另一个Struct来映射,这样就可以取到数据了,最后再用listview 绑定该数据显示在窗口中。