У меня проблемы с созданием свойства DependencyProperty типа "Binding".Другие типы работают нормально, и они успешно разрешаются, если я заполняю их, используя привязку
В моем сценарии я хочу получить необработанную привязку, чтобы я мог использовать ее для привязки к свойствам дочерних объектов почти так же, как DataGrid делает столбцы - т.е. для каждой привязки, указанной в столбце,он связывается с каждым из элементов в коллекции ItemsSource, а не с самим DataContext.
<mg:MultiSelectDataGrid x:Name="Grid" DockPanel.Dock="Left"
ItemsSource="{Binding Path=Rows}" DataContext="{Binding}"
AutoGenerateColumns="False" UriBinding="{Binding Path=UrlItems}">
И в моем "MultiSelectDataGrid":
public static readonly DependencyProperty UriBindingProperty =
DependencyProperty.Register("UriBinding", typeof(BindingBase),
typeof(MultiSelectDataGrid),
new PropertyMetadata { PropertyChangedCallback = OnBindingChanged});
private static void OnBindingChanged(DependencyObject d,
DependencyPropertyChangedEventArgs e)
{
// This is never enterred
}
public BindingBase UriBinding
{
get { return (BindingBase)GetValue(UriBindingProperty); }
set { SetValue(UriBindingProperty, value); }
}
Обратный вызов никогда не вызывается, и свойство никогда не устанавливается.Я пробовал все виды перестановок, с обратными вызовами, без.Единственная вещь, которая дала мне какой-либо успех, состояла в том, что я заменил привязку строкой (например, UriBinding = "hello") - в этом случае он вызовет обратный вызов и установит свойство, но, конечно, потерпит неудачу, потому что этоневерный тип.
Что я делаю не так?Я видел множество примеров этого, и я думаю, именно это DataGrid должен делать сам.
Спасибо