如何绑定从源读取的TextBox
的Text属性,但它会将其值存储到其他目标?
让我们说吧
我有一个文本框,它绑定到CollectionViewSource
<Window>
<Window.Resources>
<CollectionViewSource Source="{Binding Source={StaticResource ProgramView}, Path='FK_LevelList_ProgramList'}" x:Key="LevelLookupView" />
</Window.Resources>
<TextBox Name="FeePerTermTextbox" Text="{Binding Source={StaticResource LevelLookupView}, Path='FeePerTerm', Mode=OneWay, StringFormat=c2}"/>
</Window>
执行保存时,TextBox
的值将存储到与CollectionViewSource
由于
答案 0 :(得分:0)
我认为这有缺陷。如果源更新会发生什么?文本框是否应该被覆盖? 这个设计的原因是imho,UI应该反映元素集的“特征”作为DataContext,因此我希望它包含我在模型或ui中给出的值。现在,当从文本框接收设定值时,没有什么能阻止您不将视图模型中的值写入模型。
public class Redirecter
{
public string FileName
{
get{return mModel.FileName;}
set{mProxy.FileName = value;}
}
}
但这当然不能与INotifyPropertyChanged一起使用。我会用另一种方法。使用反映你的ui的模型。如果打开视图,请使用模型A中的设置填充此ui模型。如果现在保存,请将每个属性保存到模型B中。