わかりました、私はこの問題にうんざりしています。
XAMLからコンテンツを入力できるUserControlを作成しようとしています。以前、ObservableCollectionDependencyPropertyを作成しました。実行時には機能していましたが、設計時にエラーが発生しました。
オブジェクト参照がオブジェクト インスタンスに設定されていません。
今、私はより単純なバージョンを行いました:
public partial class UC : UserControl
{
public UC()
{
Labels = new ObservableCollection<Label>();
InitializeComponent();
Labels.CollectionChanged += new System.Collections.Specialized.NotifyCollectionChangedEventHandler(Labels_CollectionChanged);
}
void Labels_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e)
{
foreach (Label uc in e.NewItems)
Container.Children.Add(uc);
}
private ObservableCollection<Label> _lables = new ObservableCollection<Label>();
public ObservableCollection<Label> Labels
{
get { return _lables; }
set { _lables = value; }
}
}
これが私のUserControllの使い方です
<Window x:Class="WpfApplication1.MainWindow"
xmlns:gsh="clr-namespace:WpfApplication1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid Margin="0,0,0,30">
<gsh:UC x:Name="uC1">
<gsh:UC.Labels>
<Label Content="qwerty1" />
<Label Content="qwerty2" />
</gsh:UC.Labels>
</gsh:UC>
</Grid>
ただし、それでも設計時にエラーが発生します。
オブジェクト参照がオブジェクト インスタンスに設定されていません。
だから誰かが私を助けてくれるならお願いします。
要素のコレクションを入力できるネイティブコントロールのように使用できるUserControlを作成するにはどうすればよいですか?私はすでに2日目に答えを見つけようとしています。