【发布时间】:2011-02-20 12:22:24
【问题描述】:
我有一个名为ParameterEditorView 的窗口,其中ParameterEditorViewModel 为DataContext。在ParameterEditorViewModel 我有一个ParameterViewModel 的列表。在ParameterEditorView 中,我有一个ItemsControl,其ItemsSource 绑定到ParameterEditorViewModel 中的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 为空或 Null 时显示默认字符串。当发生这种情况时,我尝试将属性值设置为我想要的默认字符串,但在这种情况下未设置 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 绑定模式专门设置为TwoWay,但没有成功。
我认为这是一种防止无限循环发生的防御机制,但我不确定。
在这方面的任何帮助也将受到高度赞赏。
谢谢, 何塞·塔瓦雷斯
【问题讨论】:
标签: wpf mvvm binding datatemplate