我想將一些整數轉換爲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>
然而,這並沒有在所有的工作。轉換器永遠不會被調用。我在這裏錯過了什麼?
但'綁定=「{綁定StudentGrade}」'工作? – Clemens
@Clemens是的,exaclty。等級顯示出來,但我可以編輯它們而不考慮價值。 –
檢查輸出窗口,您必須得到此錯誤:找不到目標元素的控制FrameworkElement或FrameworkContentElement。 BindingExpression:路徑= StudentGrade;的DataItem = NULL;目標元素是'DataGridTextColumn'(HashCode = 15006601);目標屬性是'IsReadOnly'(類型'布爾')。相同的原因和解決方案可以在這裏找到:http://stackoverflow.com/questions/7660967/wpf-error-cannot-find-governing-frameworkelement-for-target-element –