2012-07-30 492 views
7

的XAML以獲得設計時間d:DataContext DesignInstance引用對於DataGrid自身的綁定和th e特定列的綁定。如何設置d:DataContext的d:DesignInstance上的DataGrid

如果我包括DataGrid中下面的代碼片段(如上面的XAML)的DataGridTextColumns的作品,我也得到智能感知列綁定:

d:DataContext="{d:DesignInstance vm:Episode} 

但現在的數據網格結合智能感知不再起作用。如果我刪除上面的代碼片段,會發生相反的情況:DataGrid綁定的Intellisense工作,但列綁定不會。

要說清楚,這只是一個設計時間問題。一切工作正常運行。

+0

我的感覺是,這只是Visual Studio XAML編輯器的錯誤行爲。在這種情況下它有點脆弱。 – ColinE 2012-07-30 15:49:44

+0

那麼正確的方法是使用行的類型在DataGrid上設置DesignInstance? – 2012-07-30 15:53:37

回答

1

設置d:DataContext屬性會更改設計時間以使用使用默認構造函數創建的新對象。您可能需要設置IsDesignTimeCreatable爲true

d:DataContext="{d:DesignInstance vm:Episode, d:IsDesignTimeCreatable=True}" 

但是我期待你的問題是,Episode是項目類型和不具有財產EpisodesView。您需要將數據網格設計時間數據上下文設置爲集合Episodes

+0

如何將數據網格設計時間數據上下文設置爲集合? – 2014-06-17 04:58:01

+3

我會使用一個靜態數據源。類似於'd:DataContext =「{x:Static local:DesignTimeDataSource.Episodes}」'',其中'Episodes'是類型爲「DesignTimeDataSource」的靜態屬性,並返回要使用的集合。 – bstoney 2014-06-25 02:51:23

相關問題