2010-03-29 6 views
1

Task 개체 컬렉션에 데이터 그리드를 바인딩하고 있습니다. 특정 열은 편집에 관한 몇 가지 특별한 규칙이 필요합니다 :Silverlight DataGrid는 프로그래밍 방식으로 IsReadOnly를 설정합니다.

난 단지 실제 작업 개체의 속성에 따라 각 작업의 완료율 셀에 대한 IsReadOnly 속성을 설정하고 싶은 무엇
<!--Percent Complete--> 
<data:DataGridTextColumn Header="%" 
         ElementStyle="{StaticResource RightAlignStyle}" 
         Binding="{Binding PercentComplete, Mode=TwoWay, Converter={StaticResource PercentConverter}}" /> 

. 나는 이것을 시도했다 :

<!--Percent Complete--> 
<data:DataGridTextColumn Header="%" 
         ElementStyle="{StaticResource RightAlignStyle}" 
         Binding="{Binding PercentComplete, Mode=TwoWay, Converter={StaticResource PercentConverter}}" 
         IsReadOnly={Binding IsNotLocalID} /> 

그러나 분명히 당신은 데이터 그리드 열의 IsReadOnly 속성에 바인딩 할 수 없다. 내가하는 일을하는 가장 좋은 방법은 무엇입니까?

답변

1

나는 당신이 직접 바인딩 할 수 있다고 생각하지 않습니다. Silverlight에 대한 확장 된 DataGrid가 트릭을 수행한다는 것을 알았습니다.

Extended DataGrid

0

DataGridColumn.IsReadOnly PropertyDependencyProperty 인 것처럼 보이므로 바인딩 가능해야합니다. XAML을 IsReadOnly="{Binding IsNotLocalID}"으로 변경하고 (추가 된 따옴표에 유의하십시오) 어떻게되는지 확인하십시오. Visual Studio 출력 창에서 바인딩 오류가 발생합니까?

+0

아, 나는 실버 간다 실버 라이트 3,하지 실버 라이트 4 –

+1

데이터 그리드는 매우 오래된 코드베이스입니다 해요, 그 속성의 대부분은 종속성 속성이 아닌. 특히 DataGridBoundColumn 기본 클래스의 IsReadOnly는 종속성 속성이 아닙니다. 나는 DataGrid의 프로그램 관리자로부터 훌륭한 권한을 가지고있다. 나는 또한 코드베이스가 업데이트되고 코멘트를 거부했을 때 직접 물었다. –

+0

피터, 정확하게 똑같은 문제가 있습니다. IsReadOnly는 확실히 dependencyproperty가 아닙니다. 해결 방법으로 내 자신을 만들고 여전히 작동시키지 않으려 고 노력 중입니다. 이것을위한 실천 사례가 있습니까? 감사 – Houman

관련 문제