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개의 좋아요

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

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

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

viewmodel을 이렇게 넣었습니다

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

public class MainWindowModel: ViewModelBase


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

1개의 좋아요

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

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

1개의 좋아요

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