【发布时间】:2011-01-28 17:21:10
【问题描述】:
我试图找出在第一次加载控件时选择 TextBox 中所有文本的最佳方法。我正在使用 MVVM 模式,因此我将 TextBox 的 Text 属性使用双向绑定到我的 ViewModel 上的字符串。我正在使用这个 TextBox 来“重命名”已经有名称的东西,所以我想在控件加载时选择旧名称,以便可以轻松地删除和重命名它。初始文本(旧名称)通过在我的 ViewModel 中设置来填充,然后在数据绑定完成后反映在 TextBox 中。
我真正想做的是这样的:
<TextBox x:Name="NameTextBox" Text="{Binding NameViewModelProperty, Mode=TwoWay}" SelectedText="{Binding NameViewModelProperty, Mode=OneTime}" />
基本上只是将整个文本用作具有 OneTime 绑定的 SelectedText。但是,这不起作用,因为 SelectedText 不是 DependencyProperty。
我并不完全反对在视图的代码隐藏中添加选择代码,但在这种情况下,我的问题是确定初始文本绑定何时完成。 TextBox 总是开始为空,因此不能在构造函数中完成。 TextChanged 事件似乎只在用户输入新文本时触发,而不是在文本从 ViewModel 的初始绑定发生更改时触发。
非常感谢任何想法!
【问题讨论】:
标签: silverlight data-binding textbox viewmodel selectedtext