[英]Dependency property Canvas not binding
我正在制作一個可以編輯圖像的工具,因此我可以在畫布上繪制自定義控件。 對於此控件,我綁定了分辨率和畫筆的顏色,它們的工作效果非常好,但是當我嘗試綁定Canvas時,myViewModel中始終為null。
我嘗試綁定一個List,但是那也不起作用。 大約12個小時以來,我一直在試圖找出問題所在,所以我認為是時候向你們尋求幫助了,這樣我就可以找出問題所在。
我曾經為我的視圖模型使用單例,然后可以很好地鏈接到Canvas,但是后來我意識到這是一種糟糕的工作方式,因此我嘗試將其與依賴項屬性綁定。
每當我嘗試訪問Canvas時,即使將其初始化,其值也為null。
控制
public static readonly DependencyProperty CanvasProperty = DependencyProperty.Register(
"CanvasToDraw", typeof(Canvas), typeof(DrawCanvas), new PropertyMetadata(default(Canvas), null, null));
public Canvas CanvasToDraw
{
get { return (Canvas)GetValue(CanvasProperty); }
set { SetValue(CanvasProperty, value); }
}
public DrawCanvas()
{
InitializeComponent();
CanvasToDraw = CanvasGrid;
}
XAML
<Controls:DrawCanvas x:Name="DrawCanvas1" Resolution="{Binding Resolution}" CanvasToDraw="{Binding DrawingCanvas}" RectangleList="{Binding RectangleList, ElementName=DrawCanvas1}" ColorToDraw="{Binding SelectedColor}" HorizontalAlignment="Left" Height="256" Margin="10,40,0,0" VerticalAlignment="Top" Width="256" />
視圖模型
private Canvas _drawingCanvas;
public Canvas DrawingCanvas
{
get { return _drawingCanvas; }
set
{
_drawingCanvas = value;
OnPropertyChanged("DrawingCanvas");
}
}
如果需要,我可以提供更多代碼,但這是大多數相關代碼。 是的,我確實使用INotifyPropertyChanged,因為我綁定的其他東西確實起作用。
我一直在尋找解決方案很長時間,但是答案卻很簡單。 我以為綁定是兩種方式,但是很明顯,我必須設置Mode = TwoWay,並且一切都像個魅力。 (鏈接一個可觀察的集合,而不是一個畫布)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.