WPF 데이터 바인딩 문제

안녕하세요

wpf로 처음 개발중에 있습니다.

이래저래 해보면서 이제 좀 할만하다 싶은데

문제가 발생하여 문의합니다.

<Grid Grid.Column="1">
    <TextBlock
        Text="{Binding Test, FallbackValue='Binding Error'}"
        FontSize="16" 
        Foreground="#FFC9D0EA" 
        Margin="20 0 0 0"
        VerticalAlignment="Center">
    </TextBlock>
</Grid>

Test에 데이터를 저장하여 화면에 출력하려고합니다.

viewmodel

private string test;
public string Test
{
    get { return this.test; }
    set
    {
        if (this.test != value)
        {
            this.test = value;
            OnPropertyChanged(nameof(Test));
        }
    }
}

public MainWindowModel()
{
    Test = "test";
}

이렇게 저장하였습니다.

xaml 디자인화면에서는

이렇게 바인딩한 문자열이 정상 출력되지만

컴파일후 실행하면

q2

FallbackValue가 출력됩니다.

위와같은 패턴으로 다른곳에서도 데이터를 받아와 출력하는데 성공했지만

현재와 같은 Window에서는 출력이 되지않네요

어디를 확인해봐야할까요??

1 Like

데이타컨텍스트로 연결하셨습니까?

(사실…데이터컨텍스트 연결 한 코드부분까지 넣어주시면…더확실한답변을 드릴수있을거같아요…)

<Window.DataContext>
    <vm:MainWindowModel/>
</Window.DataContext>

viewmodel을 이렇게 넣었습니다

viewmodel에서는 텔레릭 윈도우스 컨트롤에 있는 ViewModelBase 을 상속했어요

public class MainWindowModel: ViewModelBase


하다보니 원인은 찾은거같네요. Window에서 page를 로드할때 초기화 시켜버리는거같아요. 페이지 로드하는 방법을 다르게 해봐야겟습니다 ㅠ

1 Like

조금 더 깊게 보셔야할거같아요!
데이타컨텍스트를 초기하는 현상은…어느 상용 컨트롤라이브러리에서도 하지않는 행위인지라…

감사합니다. 데이터컨텍스트 연결하는 부분을 말씀하셔서 혹시나해서 봤네요

1 Like

:slight_smile: 간접적으로나마 도움이 되어서 다행입니다!