コレクションに基づいて行を表示する(そして実行時に座標を更新し、実行時にコレクションに基づいて行を追加/削除する)グラフィカルな部分をUserControlに配置したいと思います。
Class1というクラスがあるとしましょう。
public class Class1 : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
public void OnPropertyChanged(PropertyChangedEventArgs e)
{
if (PropertyChanged != null)
PropertyChanged(this, e);
}
private int _x1 = 0;
public int X1
{
get { return _x1; }
set
{
_x1 = value;
OnPropertyChanged(new PropertyChangedEventArgs("X1"));
}
}
}
そして、私のUserControlのObservableCollection:
public event PropertyChangedEventHandler PropertyChanged;
public void OnPropertyChanged(PropertyChangedEventArgs e)
{
if (PropertyChanged != null)
PropertyChanged(this, e);
}
private ObservableCollection<Class1> _classes = new ObservableCollection<Class1>();
public ObservableCollection<Class1> Classes
{
get { return _classes; }
}
行数がわかっている場合は、次のようにUserControlに行数を作成できます。
XAML:
<Grid DataContext="{Binding ElementName=LayoutRoot}">
<Line X1="{Binding Items[0].X1}" X2="100" Y1="50" Y2="100" Stroke="Red" StrokeThickness="4"/>
<Line X1="{Binding Items[1].X1}" ... />
...
</Grid>
どうすればいいですか?
努力してくれてありがとう