2013-03-21 4 views
1

Как связать свойство Text для моего TextBox, который читается из источника, но он сохранит его значение для другой цели? Скажем У меня есть текстовое поле, которое облигация на пути в CollectionViewSourceСвязывание источника и цели wpf в двух разных путях

<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

Я считаю этот недостаток. Что произойдет, если источник будет обновлен? Должно ли текстовое поле быть перезаписано? Причиной этого дизайна является imho, что пользовательский интерфейс должен отражать «черты» элемента, установленного как DataContext, поэтому я ожидаю, что он будет содержать значение, которое я даю в модели или в ui. Теперь, конечно, нет ничего, что помешало бы вам не записывать значение в вашей модели просмотра в вашу модель, получая заданное значение из текстового поля.

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

Но это, конечно, не будет работать вместе с INotifyPropertyChanged. Я бы использовал другой подход. Используйте модель, которая больше отражает ваш ui. Если вы откроете представление, заполните эту модель ui вашими настройками из модели A. Если вы сохраните это значение, сохраните каждое свойство в Model B.

Смежные вопросы