2011-04-27 56 views
0

在我的Viewmodel中,根據給定的數據類型,我正在生成列(使用反射獲取數據類型的所有屬性,並使用它們來創建適當的DataGrid列)並將其添加到Columns集合中。現在我想這個集合綁定到我的DataGrid的列屬性,如下圖所示:如何使用Viewmodel中的屬性來公開DataGrids Columns屬性?

< DataGrid列=「{結合VMColumnCollection}」/>

請讓我知道如何在不破壞MVVM實現這一目標?

回答

0

我得到了解決,這個問題是不是與附加屬性。其實我在TabControl.But裏面使用datagrid時,當我從第一個標籤切換到第二個標籤,然後又回到第一個時,從列xyz已經存在的附屬屬性生成異常,但是Datagrid。 Columns.Count爲0.雖然列數爲0,但我無法插入列(雖然我無法找到爲什麼會發生這種情況),但這很奇怪。然後在調試時發現,無論何時我切換回到以前選項卡,視構造函數called.Switching回標籤不應創建視圖的新實例,我搜索互聯網上,發現下面的鏈接

How to preserve control state within tab items in a TabControl

http://eric.burke.name/dotnetmania/2009/04/26/22.09.28

然後我創建了一個自定義Tabcontrol,如第二個鏈接所示。現在它正在工作。

0

你不能做到這一點,但有一種變通方法,檢查該解決方案:Answer in Stackoverflow

+0

我嘗試了該線程提供的解決方案,但它不工作。 我在同一個視圖上使用3個datagrid實例,並且對於所有三個實例都有不同的數據類型。但是所有3數據類型都有一個同名的屬性。 它在行dataGrid.Columns.Add(column);上拋出異常。它說***列已經存在。 – 2011-04-27 11:11:32

相關問題