2012-03-19 6 views
1

몇 가지 확인란이 포함 된 간단한 대화 상자가 있습니다. 사용자가 설정을 변경하지 않으면 비활성화되는 Ok 버튼이 필요했습니다. 내 견해로는, 버튼의 isEnabled 속성을 바인딩하는 OkEnabled 속성이 있습니다. 확인란의 값이 변경되면 OkEnabled가 true로 설정되지만, 어떤 이유로이 단추가 활성화되지는 않습니다.boolean에 대한 IsEnabled 바인딩

OkEnabled 속성이 상태를 변경할 때 확인 버튼 상태가 변경되지 않습니다 어떤 이유
<Button Content="OK" Style="{StaticResource MyButton}" Height="23" 
     HorizontalAlignment="Left" Margin="20" Name="m_okbutton" 
     VerticalAlignment="Top" Width="75" 
     Click="okClick" IsEnabled="{Binding Path=OkEnabled}"/> 

public bool OkEnabled 
{ 
    get 
    { 
     return m_okEnabled; 
    } 
    set 
    { 
     m_okEnabled = value; 
     OnPropertyChanged("OkEnabled"); 
    } 
} 
. IsEnabled 속성을 확인란 중 하나에 바인딩하면 확인란이 변경 될 때 단추 변경 상태가 표시됩니다. 내보기에서

+2

바인딩 오류가 있습니까? –

답변

5

은 내가 OkEnabled 재산 기본적으로

을, 바인딩은 DataContext를하지 뷰를 기준으로합니다. 뷰를 자신의 DataContext로 설정 했습니까?

+0

대화 상자의 DataContext를 OkEnabled 속성이 포함 된보기로 설정했습니다. 그게 당신이 의미하는 것입니다, 미안 해요, WPF에 새로 온 것입니다. – user1145533

+0

예, 그것이 제가 의미했던 것입니다. Visual Studio의 출력 창에서 바인딩 오류가 있는지 확인하십시오. –

+0

불행히도 바인딩 오류가 없습니다. CheckBox 속성 중 하나에 단추를 바인딩하면 왜 단추가 상태를 변경하는지 이해할 수 없습니다. – user1145533

1

OkEnabled 속성이 표시되었다고 했으므로. MVVM을 사용하는 경우 올바르지 않습니다. 모델에 있어야하며 모델 객체를 데이터 관점의 텍스트로 할당해야합니다.

관련 문제