將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