2013-03-21 3 views
1

TextBox 소스에서 읽은 값을 다른 대상에 저장하는 Text 속성을 어떻게 바인딩 할 수 있습니까? 의 내가 TextBox의 값이 CollectionViewSource두 개의 서로 다른 경로에서 wpf 소스 및 대상 바인딩

감사

다른 다른 모델에 저장할 때 저장 수행 채권은 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> 

의 경로에있는 텍스트 상자를 을 가정 해 봅시다

답변

0

이 결함이 있다고 생각합니다. 소스가 업데이트되면 어떻게됩니까? 텍스트 상자를 덮어 써야합니까? 이 디자인의 이유는 UI가 DataContext로 설정된 요소의 "특성"을 반영해야하므로 imho가 모델 또는 UI에 제공 한 값을 포함 할 것으로 기대하기 때문입니다. 이제 텍스트 상자에서 설정 값을 받으면 모델에서 뷰 모델의 값을 쓰지 않는 것을 막을 수 있습니다.

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

하지만이 물론 물론 INotifyPropertyChanged 함께 작동하지 않습니다. 나는 다른 접근법을 사용할 것이다. 귀하의 Ui를 더 반영한 모델을 사용하십시오. 뷰를 열면 모델 A의 설정으로이 ui 모델을 채 웁니다. 이제 저장하면 모델 B에 각 속성을 저장하십시오.

관련 문제