संग्रह के लिए Wpf कस्टमकंट्रोल बाइंडिंग काम नहीं कर रही है


मुझे एक कस्टम नियंत्रण के साथ दो स्थानों पर बाध्यकारी समस्याएं आ रही हैं, जिसे मैंने List निर्भरता संपत्ति से प्रारंभ किए गए चयनों के साथ टैग की एक मल्टीसेलेक्ट सूची निष्पादित करने के लिए लिखा है।

हालाँकि, मुझे चयनितटैग डिपेंडेंसीप्रॉपर्टी से जुड़ने में परेशानी हो रही है। यह शून्य है.
इसे स्टैंड-अलोन मोड दोनों में काम करने की आवश्यकता है; और एक 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>

डीपी परिभाषा:

सी#
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));

नियंत्रण के प्रत्येक उदाहरण के लिए, चयनित टैग शून्य है; यह बाध्यकारी नहीं है. कोई बाइंडिंग विफलताएँ नहीं दिखतीं।

मैंने क्या प्रयास किया है:

मैंने इस समस्या पर शोध करने में मिले सभी उचित सुझावों का प्रयास किया है। मैं सोच रहा हूं कि समाधान के लिए मेरे वीएस कॉन्फ़िगरेशन में कुछ गड़बड़ है, लेकिन मुझे यह दिखाई नहीं दे रहा है।

यहाँ Github पर पूर्ण समाधान का लिंक दिया गया है:

コメント

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