私はC#、WPF、MVVMと私の絶対初心者で、観測可能なcolletionのポイントxとyに基づいてポイントを追加することができました座標。私は、カスタマーのユーザーコントロールを作成し、これが私の見解モデルです: 私は私の意見に私のviewmodel上のデータをバインドする方法を結合するのを理解していません。すなわち。ObservableCollectionのキャンバスにcircle(points)を追加してmvvmを使って表示する
public class ViewModel : INotifyPropertyChanged
{パブリックイベントPropertyChangedEventHandlerのPropertyChanged。
public ViewModel()
{
points = new ObservableCollection<Point>();
this.testData();
}
public ObservableCollection<Point> points { get; set; }
private void testData()
{
points.Add(new Point(0, 50));
points.Add(new Point(50, 0));
points.Add(new Point(13, 73));
points.Add(new Point(12, 23));
points.Add(new Point(34, 80));
points.Add(new Point(322, 225));
points.Add(new Point(270, 510));
points.Add(new Point(0, 0));
}
}
これは私が私のview.xaml
<Canvas>
<local:UserControl2 />
</Canvas>
と私のユーザーコントロール
public partial class UserControl2 : UserControl
{
public UserControl2()
{
InitializeComponent();
this. DataContext = new ViewModel();
}
}
、それはキャンバスない円/ポイント上の場所を表示している(ここでそれを確認するために何のVisual Studioを持っていません)。私はそれがどのように動作するか –
この回答内容を正確に私のview.xamlにいくつかの変更を追加しましたhttp://stackoverflow.com/a/1030191/1228同様の質問http://stackoverflow.com/questions/2317713/binding-wpf-canvas-子供-のObservableCollection-へとhttp://stackoverflow.com/questions/3135438/binding-to-canvasあなたがコレクションに結合している、とコントロールがコレクション内の各事のために何かを表示する必要がある場合、あなたが必要ItemsControlを使用します。パネルには作成されたアイテムが保持されており、DataTemplatesを使用してそれぞれの作成方法を制御できます。それが基本パターンです。 – Will