1

如何为TextBox从源读取的文本绑定文本属性,但它将其值存储到不同的目标?假设我有一个文本框,它与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

谢谢

4

1 回答 1

0

我认为这是有缺陷的。如果源得到更新会发生什么?是否应该覆盖文本框?这种设计的原因是恕我直言,UI 应该将元素集的“特征”反映为 DataContext,因此我希望它包含我在模型或 ui 中给出的值。现在,当从文本框接收设置值时,当然没有什么可以阻止您不将视图模型中的值写入模型。

public class Redirecter
{
    public string FileName
    {
        get{return mModel.FileName;}
        set{mProxy.FileName = value;}
    }
}

但这当然不能与 INotifyPropertyChanged 一起很好地工作。我会使用不同的方法。使用更能反映您的用户界面的模型。如果您打开视图,请使用模型 A 中的设置填充此 ui 模型。如果您现在保存它,请将每个属性保存到模型 B 中。

于 2013-03-21T12:14:22.857 回答