2014-07-22 5 views
1

WPF (C#)를 사용합니다.RadioButton을 DataGridTextColumn으로 바인딩하는 방법?

<DataGrid> 
    <DataGrid.Columns> 
    <DataGridTextColumn Header="Col1" IsReadOnly="{Binding}" > 
    </DataGridTextColumn> 

    <DataGridTextColumn Header="Col2" IsReadOnly="{Binding}" > 
    </DataGridTextColumn> 
    </DataGrid.Columns> 
</DataGrid>    

<GroupBox> 
    <StackPanel> 
     <RadioButton IsChecked="{Binding}" Content="Col1 IsReadOnlyFalse, Col2 IsReadOnlyTrue"/> 
     <RadioButton IsChecked="{Binding}" Content="Col1 IsReadOnlyTrue, Col2 IsReadOnlyFalse"/> 
    </StackPanel>            
</GroupBox>    

을 가르쳐주세요, 어떻게 결합 할는 isReadOnly의 (DataGridTextColumn)와 (의 RadioButton을)의 IsChecked?

답변

3

DataGridTextColumns는 ElementName 여기에 작동하지 않습니다와 간단 바인딩 데이터 그리드의 것과 같은 비주얼 트리에 거짓말을하지 않습니다.

경우 당신은 WPF 4.0을 사용하는 이상이 같은 라디오 버튼과 결합하는 x:Reference를 사용할 수 있습니다

<DataGrid ItemsSource="{Binding GroupsCollection}"> 
    <DataGrid.Columns> 
     <DataGridTextColumn Header="Col1" 
          IsReadOnly="{Binding IsChecked, 
             Source={x:Reference DisableColumn1}}" > 
     </DataGridTextColumn> 

     <DataGridTextColumn Header="Col2" 
          IsReadOnly="{Binding IsChecked, 
             Source={x:Reference DisableColumn2}}" > 
     </DataGridTextColumn> 
    </DataGrid.Columns> 
</DataGrid> 

<GroupBox> 
    <StackPanel> 
     <RadioButton x:Name="DisableColumn2" 
        Content="Col1 IsReadOnlyFalse, Col2 IsReadOnlyTrue"/> 
     <RadioButton x:Name="DisableColumn1" 
        Content="Col1 IsReadOnlyTrue, Col2 IsReadOnlyFalse"/> 
    </StackPanel> 
</GroupBox> 

라디오 버튼 x:Name를 설정하고 x:Reference를 사용하여 결합한다.

+0

{x : Reference }을 WPF 레이블의 대상에 사용하면 Visual Studio에서 "서비스 공급자에 INameResolver 서비스가 없습니다"라는 메시지와 함께 InvalidOperationException 예외가 발생합니다. 어떻게 해결할 수 있습니까? – Olga

+1

디자이너 오류 만 발생해야합니다. 이것은 WPF에서 이미 알려진 버그입니다. 그러나 디자이너가 원하는대로 표시되도록하려면 해결 방법이 있습니다 [여기] (http://social.msdn.microsoft.com/Forums/vstudio/en-US/159cd39a-0397-48bd-a5d7-cf3cef1a90e8/service -provider-is-missing-the-inameresolver-service? forum = wpf). 또한이 질문은 http://stackoverflow.com/questions/17392162/bind-visibility-to-checkable-menu-item-shows-error-service-provider-is-missing에 관심이있을 수 있습니다. –