wpf 응용 프로그램에 다음 xaml이 있습니다. 보기 모델에서 단추를 ICommand에 바인딩하고 싶습니다. 웬일인지, 나는 나의 시야에서 명령을 볼 수 없다. 이것은 사용자 정의 컨트롤입니다. 내 ICommand의 객체가 여기버튼을 클릭 할 때 wpf 명령이 실행되지 않음
<Grid>
<Grid.DataContext>
<Binding
x:Name="SettingsData"
Path="Data" />
</Grid.DataContext>
.
.
.
<DockPanel Grid.Column="1">
<Button x:Name="SaveButton"
DockPanel.Dock="Top"
Height="25"
HorizontalAlignment="Left"
Margin="70 0 0 0"
Command="{Binding Path=SaveData}"
>Save Changes</Button>
</DockPanel>
</Grid>
입니다 -
public ICommand SaveData
{
get
{
if (_saveData == null)
{
_saveData = new RelayCommand(
param => this.saveData(),
param => true
);
}
return _saveData ;
}
}
사람이 내가이 명령에 결합 할 수없는 이유 어떤 생각을 가지고 있습니까?
이 경우 바인딩의 소스 속성을 무시하십시오 DockPanel에 당신의 DataContext이 목록의 일종에 바인딩과 같은 오류가 아래를 보면 는 어떤 생각에 대한I see this in the output window - BindingExpression path error: 'SaveData' property not found on 'object' ''List`1'
감사합니다 ....
RelayCommand 구현은 표준 WPF 라이브러리에 속하지 않으므로 어떻게해야합니까? 나는 CanExecute가 false를 반환한다고 생각합니다. –
Josh Smith의 MVVM 튜토리얼 (http://msdn.microsoft.com/en-us/magazine/dd419663.aspx)에서 제공하는 relaycommand 구현을 사용하고 있습니다. 두 번째 매개 변수는 CanExecute이므로 항상 true로 전송됩니다 .... – czuroski
디버깅하는 동안 VS 출력 창의 바인딩 오류를 볼 수 있습니까? – svick