WP7:为什么ListBox.ItemsPanel会破坏我的ElementName数据绑定?

我有一个Windows Phone 7 ListBox绑定到一个整数列表。 我使用默认的MVVM Light模板,因此有一个ViewModel类包含数据和一个简单的RelayCommand 。 这是ListBox:

        

这将在按钮内显示一个垂直的整数列表。 如果单击其中任何一个,则执行以下命令代码并显示弹出窗口: new RelayCommand(i => MessageBox.Show("Test" + i));

但是,如果我只是添加以下XAML以更改为水平列表,则数据绑定将失败。 单击按钮时没有任何操作,并且没有错误消息写入“输出”窗口。

      

我已经为EventToCommand尝试了一些其他类型的绑定。 例如,将我的ViewModel指定为静态资源。 它有效,但不如上面的例子理想。

为什么ItemsPanel打破了数据绑定?

这是Silverlight 3一个已知问题。 要解决此问题,请将DataTemplate包装在UserControl

     

而是使用它: