일부 정수를 DataGrid 열의 ReadOnly 값으로 변환하려고합니다. 이를 위해, 나는 다음과 같은 일을 해요 :C#/WPF - 변환기가 호출되지 않습니다?
namespace TanulmanyiRendszer.Admin.ViewModel
{
public class GradeToReadOnlyConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
Boolean IsReadOnly = (Int32.Parse((String)value) < 2) ? true : false;
return IsReadOnly;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
return null;
}
}
}
XAML보기
<Window x:Class="TanulmanyiRendszer.Admin.View.MainWindow"
<!-- ETC -->
xmlns:viewModel="clr-namespace:TanulmanyiRendszer.Admin.ViewModel"
Title="Courses" Height="600" Width="500">
<Window.Resources>
<viewModel:GradeToReadOnlyConverter x:Key="converter" />
</Window.Resources>
<!-- ETC -->
<DataGrid Name="studentGrid" Grid.Row="3" Grid.ColumnSpan="2" AutoGenerateColumns="False" ItemsSource="{Binding Students, Mode=TwoWay}" >
<DataGrid.Columns>
<DataGridTextColumn IsReadOnly="{Binding StudentGrade, Converter={StaticResource converter}}" Header="Student's grade" Binding="{Binding StudentGrade}"/>
</DataGrid.Columns>
</DataGrid>
</Window>
이, 그러나 전혀 작동하지 않습니다. 변환기는 절대로 호출되지 않습니다. 내가 여기서 무엇을 놓치고 있니?
'Binding = "{Binding StudentGrade}"가 효과가 있습니까? – Clemens
@Clemens 예, exaclty. 성적은 나타나지만 가치에 상관없이 편집 할 수 있습니다. –
출력 창을 확인하십시오.이 오류가 발생합니다. 대상 요소에 대해 FrameworkElement 또는 FrameworkContentElement를 찾을 수 없습니다. BindingExpression : Path = StudentGrade; DataItem = null; 대상 요소는 'DataGridTextColumn'(HashCode = 15006601)입니다. 대상 속성이 'IsReadOnly'('Boolean'유형)입니다. 이유와 해결책은 다음에서 찾을 수 있습니다. http://stackoverflow.com/questions/7660967/wpf-error-cannot-find-governing-frameworkelement-for-target-element –