2014-09-01 135 views
2

我有,我用這種方式創建我的Windows窗體視圖模型:是否可以在MVVM模式中使用WindowsFormsHost?

System.Windows.Forms.DataVisualization.Charting.Chart chart = new System.Windows.Forms.DataVisualization.Charting.Chart(); 

我的XAML是:

<WindowsFormsHost x:Name="host" VerticalAlignment="Stretch" HorizontalAlignment="Stretch"> 
       <wfCharts:Chart x:Name="MyWinformChart" > 
        <wfCharts:Chart.Series> 
         <wfCharts:Series Name="SerieGraficoExterior" /> 
        </wfCharts:Chart.Series> 
        <wfCharts:Chart.ChartAreas> 
         <wfCharts:ChartArea/> 
        </wfCharts:Chart.ChartAreas> 
       </wfCharts:Chart> 
      </WindowsFormsHost> 

但我不知道這是否是可以綁定到我的看法,因爲WindowsFormsHost控件沒有像ContentControl那樣的Content屬性,所以我不知道是否可以在MVVM模式中使用WindowsFormsHost。我做了一些WPF嘗試,後者在代碼中工作,但如果可能的話,我想使用MVVM模式。

謝謝。

回答

3

您可以將Windows窗體控件嵌入到WPF應用程序中,但不能從窗體控件執行綁定。表單控件沒有datacontext屬性或依賴項屬性,這是綁定的主幹。這就是說,您仍然可以在MVVM應用程序中使用表單主機,除了表單控件(手動需要執行管道工作)之外的所有其他功能。因此,除非您的應用程序的主要部分基於Windows窗體,否則您仍然可以從MVVM中獲益。

+0

所以要創建圖表(Windows窗體)我需要把代碼放在代碼隱藏? – 2014-09-01 08:41:44

+1

當你把它放在XAML中時,控件也被創建。您可以從代碼隱藏的變量名稱(MyWinformChart)訪問窗體控件​​, – sondergard 2014-09-01 08:44:51

相關問題