【解決方法】WPFカスタムコントロールのコレクションへのバインドが機能しない


List 依存関係プロパティから初期化された選択を使用してタグの複数選択リストを実行するために作成したカスタム コントロールで、2 つの場所でバインディングの問題が発生しています。

ただし、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をコピーしました