2009-10-22 1 views
0

메신저 작업 열하지 :명령은 여기에 편집 버튼 작동을 얻기 위해 노력 WPFToolkit의 데이터 그리드와 메신저를 사용

<my:DataGridTemplateColumn> 
        <my:DataGridTemplateColumn.CellTemplate> 
         <DataTemplate> 
          <TextBlock> 
           <Hyperlink Command="{Binding EditVenueCommand}" >Edit</Hyperlink> 


          </TextBlock> 
         </DataTemplate> 
        </my:DataGridTemplateColumn.CellTemplate> 
       </my:DataGridTemplateColumn> 

와 나는 다음과 같은 오류가 무엇입니까 :

BindingExpression을 경로 오류 : 'EditVenueCommand'속성이 'object' ''Venue '(HashCode = 18626439)'에 없습니다. BindingExpression : Path = EditVenueCommand; DataItem = '장소'(HashCode = 18626439); 대상 요소가 '하이퍼 링크'(HashCode = 32883419)입니다. 대상 속성이 'Command'(유형 'ICommand')입니다.

EditVenueCommand는 표 밖에있을 때 완벽하게 실행됩니다. 내가 그 일을 얻을 couldnt는 때문에

또한, 내가 대신 DataGridHyperlinkColumn의 DataGridTemplateColumn을 사용하고있는 이유는 하나 :(

답변

1

어떤 코드에서 일어나고있는 것은 속성으로 "EditVenueCommand"를 치료하는 바인딩이다 그 이 데이터 템플릿의 데이터 컨텍스트에 발견해야

당신은 정말 어쨌든 명령를 연결하는 바인딩을 사용하지 않아야

, 너무 같은 네임 스페이스 + 유형 + 명령 필드 지정 사용합니다.

Command="myns:MyType.EditVenueCommand" 

을여기서 myns는 CLR 네임 스페이스에 매핑됩니다. 예를 들면 다음과 같습니다.

+0

'vm : VenueManagerViewModel.EditVenueCommand'는 'Command'속성에 할당 할 수 없습니다. 'CommandValueSerializer'ValueSerializer 'System.String'에서 변환 할 수 없습니다. – aaron

+0

이상하게 들리니, 주위에 {x : 정적}을 추가해 주시겠습니까? –

+0

이 작동하는 것처럼 보였습니다. 저는 ViewModel을 정적으로 만들어야 만했습니다. 정말 감사하지만 도움을 주셔서 감사합니다. – aaron

관련 문제