我試圖在Visual Studio 2010中使用C#從我的sdf文件更新DataGrid。DataGrid如下。WPF DataGrid在ItemsSource設置時不顯示數據
<Grid Height="auto" Name="grid1" Width="auto" >
<Grid.RowDefinitions>
<RowDefinition Height="{Binding ElementName=grid1, Path=ActualHeight}"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition MinWidth="200" Width="200" Name="DGWidth"/>
<ColumnDefinition MinWidth="600" Name="PIWidth"/>
</Grid.ColumnDefinitions>
<DataGrid AutoGenerateColumns="True"
Grid.Column="1" Grid.Row="0"
Height="{Binding ElementName=grid1, Path=ActualHeight}"
HorizontalAlignment="Left"
Name="PIView"
VerticalAlignment="Top"
Width="{Binding ElementName=PIWidth, Path=ActualWidth}"
IsReadOnly="True"/>
</Grid>
我想填充PIView DataGrid。爲此,我將DataGrid引用傳遞給經理類中的方法updatePIView
。
public class PTManager
{
public PTManager()
{
}
public void updatePIView(ref DataGrid pIView, DateTime datetime)
{
PTDate date = PTDatabase.GetDt(datetime);
SqlCeDataAdapter adapter = PTDatabase.GetAdaperForPIViewForDt(date);
DataTable table = new DataTable();
adapter.Fill(table);
pIView.ItemsSource = table.DefaultView;
}
}
在我設置ItemsSource的方法中。它適用於另一個DataGrid(具有單個列表),它在加載主窗口後立即加載。
我想在選擇事件中加載PIView
中的數據。我可以看到表格中的數據。但是當表格的默認視圖設置爲ItemsSource
時,什麼都不會發生。 WPF不會產生任何錯誤或警告。
我錯過了什麼嗎?
我做不需要收集。所以,我沒有收集就嘗試過。但我不知道爲什麼它不起作用。順便說一下,我將'PTManager'分配爲viewmodel類,並將其設置爲窗口的靜態資源,以便在不使用雙向模式的情況下綁定屬性'DataView PIView'。 –
您的'PTManager'類不*視圖模型,因爲視圖模型對視圖一無所知。任何具有UI相關屬性的'視圖模型'(例如'DataGrid'類型)都是* not *視圖模型。 – Sheridan
我已經從PTManager中刪除了這些'DataGrid'。使用對接口沒有任何瞭解的屬性進行通信。 –