将VSF8中的WPF项目转换为vs2010时遇到了问题。 我有一个DataGrid包含一个ListBox。每个ListBoxItem都有一个标签和一个按钮。转换为vs2010后,该按钮不再呈现,但会在应用程序进入视图时立即崩溃。 (即应用程序加载,但是当ListBox被创建时,我得到一个NullReferenceException。但是,工作虽然是从按钮中删除点击事件,然后它呈现很好:)与ListBoxItem中的Button的同一类型的设置也适用于不在里面一个DataGrid。显然,ListBox的内容是动态的,但是当使用静态集合时,我会得到相同的错误。另外删除CommandParam根本没有帮助。任何指针都是最受欢迎的。DataGrid/ListBox中的WPF按钮
代码:
<DataGrid x:Name="DgTest" AutoGenerateColumns="false">
<DataGrid.Columns>
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<StackPanel>
<ListBox ItemsSource="{Binding ItemList}">
<ListBox.ItemTemplate>
<DataTemplate >
<StackPanel Style="{StaticResource hzp}">
<Label />
<Button Click="Button_Click" Content="TestButton"/>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</StackPanel>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
代码隐藏:
Imports System.Collections.ObjectModel
Class MainWindow
Public TestList As New ObservableCollection(Of TestClass)
Private Sub MainWindow_Loaded(ByVal sender As Object, ByVal e As System.Windows.RoutedEventArgs) Handles Me.Loaded
DgTest.ItemsSource = TestList
TestList.Add(New TestClass(0))
TestList.Add(New TestClass(1))
End Sub
Public Class TestClass
Private _ItemList As New List(Of String)
Private _id As Integer
Public Property ItemList() As List(Of String)
Get
Return _ItemList
End Get
Set(ByVal value As List(Of String))
_ItemList = value
End Set
End Property
Public Property Id() As Integer
Get
Return _id
End Get
Set(ByVal value As Integer)
_id = value
End Set
End Property
Public Sub New(ByVal id As Integer)
_ItemList.Add("String1")
_id = id
End Sub
End Class
Private Sub Button_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)
End Sub
末级
而且在应用资源:
<Style TargetType="StackPanel" x:Key="hzp">
<Setter Property="Orientation" Value="Horizontal"/>
<Setter Property="Background" Value="Orange"/>
</Style>
现在,这里的奇怪的事情。如果删除了Stackpanel样式,该按钮将起作用。如果按钮的Click事件被删除,它将正常加载。
嗨Drknezz,事件处理程序是好的,我已经双重和三重检查它。它的签名也与ListBox外的其他工作的按钮相同。 – Constanta 2011-01-09 15:22:29