Wpf 自定义控件绑定到集合不起作用


我在两个地方遇到了绑定问题,其中一个自定义控件是我编写的,用于执行标签的多选列表,其中的选择是从 List 依赖属性初始化的。

但是,我在绑定到 SelectedTags DependencyProperty 时遇到问题。 它为空。
这需要在单机模式下都可以工作; 并在 DataGridColumn 中(我正在使用 DataGridTemplateColumn)。
独立使用的 Xaml:

<cc:TagSelect Width="175"
   MaxHeight="350"
   BorderBrush="Black"
   BorderThickness="1"
   HorizontalAlignment="Center"
   VerticalAlignment="Top"
   SelectedTags="{Binding SomeTags}" />

用于 DataGridUse 的 Xaml:

<DataGridTemplateColumn Width="175" Header="Tags">
  <DataGridTemplateColumn.CellTemplate>
    <DataTemplate>
      <cc:TagSelect Width="175" SelectedTags="{Binding Tags}" />
    </DataTemplate>
  </DataGridTemplateColumn.CellTemplate>
  <DataGridTemplateColumn.CellEditingTemplate>
    <DataTemplate>
	  <cc:TagSelect Width="175" SelectedTags="{Binding Tags}" />
    </DataTemplate>
  </DataGridTemplateColumn.CellEditingTemplate>
</DataGridTemplateColumn>

DP定义:

C#
public List<Tag> SelectedTags
{
    get { return (List<Tag>)GetValue(SelectedTagsProperty); }
	set { SetValue(SelectedTagsProperty, value); }
}
public static readonly DependencyProperty SelectedTagsProperty =
			DependencyProperty.Register("SelectedTags", 
			typeof(List<Tag>), 
            typeof(TagSelect),
			new FrameworkPropertyMetadata(null, 
			FrameworkPropertyMetadataOptions.BindsTwoWayByDefault));

对于 Control 的每个实例,SelectedTags 为 null; 它不具有约束力。 没有显示绑定失败。

我尝试过的:

我已经尝试了在研究这个问题时发现的所有合理建议。 我认为我的解决方案的 VS 配置有问题,但我没有看到它。

以下是 Github 上完整解决方案的链接:

コメント

タイトルとURLをコピーしました