簡體   English   中英

依賴屬性畫布未綁定

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM