我有一個名爲ParameterEditorView
的窗口,其中ParameterEditorViewModel
爲DataContext
。在ParameterEditorViewModel
我有一個列表ParameterViewModel
。在ParameterEditorView
我有一個ItemsControl
其ItemsSource
綁定到 ParameterViewModel
名單。我需要ParameterViewModel
來引用ParameterView(稍後會詳細介紹)。在ParameterEditorView
的Resources
部分我添加了DataTemplate
:將視圖傳遞給包含數據模板的視圖模型
<DataTemplate DataType="{x:Type my:ParameterViewModel}" >
<my:ParameterView HorizontalAlignment="Left"/>
</DataTemplate>
所以,我怎麼能傳遞一個創建以顯示ParameterViewModel
它的ParameterView
的參考?
我之所以需要在ParameterViewModel
的ParameterView
如下: 我有一個TextBox
其Text
屬性綁定到PropertyModelView.Name
財產。但是我想在Name
爲空或空時顯示默認字符串。我試圖將屬性值設置爲我想要的默認字符串,但在此場景中未設置TextBox.Text
。我做這樣的事情:
private string _name;
public string Name
{
get { return _name; }
set
{
if (value == null || value.Length == 0)
Name = _defaultName;
else
_name = value;
}
}
我也試着專門設置TextBox.Text
結合模式沒有成功雙向。 我認爲這是防止發生無限循環的防禦機制,但我不確定。 任何在這方面的幫助也將不勝感激。
感謝, 何塞·塔瓦雷斯
嗯,我可能已經不能清楚地表達自己。 我有一個名爲ParameterEditorView的窗口和一個ParameterEditorViewModel。在ParameterEditorView中,我有一個ParameterViewModel的列表。在ParameterEditorView中,我有一個ItemsControl,它的ItemsSource綁定到ParameterEditorViewModel的ParameterViewModel列表中。我還在ParameterEditorView中定義了上面顯示的'DataTemplate'。 綁定工作正常,但我想知道是否可以將ParameterView的引用(即自動創建的)顯示ParameterViewModel以傳遞給ParameterViewModel。 – jpsstavares 2010-05-17 17:21:15
@jps假設ParameterView是一個UserControl。如果你試圖將一大塊用戶界面傳遞給ViewModel或Model,那麼你會做錯某些事情。我認爲說出你的問題並尋求解決方案,而不是走上正確的道路對你有利。 FallbackValue是一個選項。我編輯添加第二個選項。 – Will 2010-05-17 17:31:47
我想這第二個選項是克服這個問題的好選擇。謝謝您的幫助。 – jpsstavares 2010-05-19 09:02:03