Я пытаюсь связать значение в customcontrol, размещенном внутри DataGridTemplateColumn, но привязка не работает.привязка DataContext к настраиваемому элементу управления
Мои DataGridTemplateColumn:
<DataGridTemplateColumn Width="auto" SortMemberPath="Etat" CanUserReorder="False" CanUserResize="True" x:Name="colonneEtat">
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate />
</DataGridTemplateColumn.CellEditingTemplate>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<widget:MyWidget MyObject="{Binding MyObjectVariable, Converter={StaticResource MyDebugConverter}}" Margin="5,0" VerticalAlignment="Center"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
Мой пользовательский элемент управления содержит только сетки на данный момент, но это свойство определяется следующим образом:
public static readonly DependencyProperty MyObjectProperty=
DependencyProperty.Register("MyObject",
typeof(ObjectType),
typeof(MyWidget),
new PropertyMetadata(null));
public ObjectType MyObject
{
get { return (ObjectType)GetValue(MyObjectProperty); }
set {
SetValue(MyObjectProperty, value);
FillCustomControl();
}
}
Debug конвертер является просто манекен конвертер для тестирования связывания :
public object Convert(object value, Type targetType,
object parameter, CultureInfo culture)
{
System.Diagnostics.Debugger.Break();
return value;
}
Мои пользовательские элементы управления отлично работают, я уже пробовал это в ano Это место моего заявления. Его функционирование прост: когда свойство установлено I Заполните настраиваемый элемент управления в зависимости от содержимого из свойства. Как сказано, это поведение было протестировано.
Но в случае этой DataGridTemplateColumn свойство никогда не устанавливается. У меня нет никакой ошибки привязки на выходе, и отладчик останавливается в конвертере + значение в конвертере - это ожидаемое значение. Но по какой-то причине он не устанавливает значение свойства внутри моего настраиваемого элемента управления.
Что мне не хватает?
Спасибо
Я запутался. Свойство 'MyObject' определено в' MyWidget', но ваше использование 'MyWidget' использует свойство' ObjectProperty' и пытается привязать его к 'MyObject'. Что такое 'ObjectProperty'? Где находится этот столбец? –
Действительно два объекта с тем же именем ... Я изменил, но все еще не работал. – user2088807
Я не подразумевал, что именно поэтому это не сработало, было непонятно, что вы пытались сделать.Мы все еще не знаем, где «MyObjectVariable», что вы можете делать с «DataContext» в «MyWidget» внутри и т. Д. Было бы полезно, если бы вы могли предоставить [минимальный, полный, проверяемый пример] (http://stackoverflow.com/help/mcve), чтобы кто-то мог воспроизвести вашу проблему. Ответы будут в лучшем случае догадки. –