我一個文本框綁定到一個對象,像這樣:如何使用d:DesignInstance和沒有默認構造函數的類型?
<TextBlock d:DataContext="{d:DesignInstance ViewModel:TaskVM }"
Text="{Binding Title}" MouseLeftButtonDown="TextBlock_MouseLeftButtonDown">
</TextBlock>
現在我想知道如何使它在設計過程中顯示模擬數據。我試着做這樣的事情:
<TextBlock Text="{Binding Path=Title}" MouseLeftButtonDown="TextBlock_MouseLeftButtonDown">
<d:DesignProperties.DataContext>
<ViewModel:TaskVM Title="Mock"/>
</d:DesignProperties.DataContext>
</TextBlock>
然而,由於TaskVM沒有默認的構造函數,我得到一個「沒有默認構造函數」中找到。
我知道,當我使用d:DataContext="{d:DesignInstance ViewModel:TaskVM }"
它創建一個模擬數據類型。有沒有辦法讓我設置這個模擬類型的屬性?
謝謝!
我喜歡這個主意:)。繼承將允許我跳過重新創建所有屬性。我仍然更喜歡有一種內置的方式來操縱WPF創建的模擬對象。它創建了一個模擬對象,不是嗎?它在MSDN文檔中提到:d:IsDesignTimeCreatable \t 在d:DesignInstance標記擴展中,指定從您的類型創建設計實例,而不是由設計器生成的替代類型。 – VitalyB
@VitalyB - 是的,你是對的。它看起來像您可以設置'd:IsDesignTimeCreatable'到'FALSE'和替代型會爲你在運行時創建(使用您的TaskVM類型爲「形狀」)。確切地說, –
。這是非常令人生畏的,我無法設置該替代類型的屬性。 – VitalyB