【问题标题】:Why aren't my rectangles showing?为什么我的矩形不显示?
【发布时间】:2015-04-22 22:22:57
【问题描述】:

我不明白为什么没有显示我的矩形。 我制作了xaml,数据绑定了画布,并正确初始化。 我错过了什么,以至于它只显示一个空白屏幕。 它应该显示一个数字数字 8。

型号:

namespace Final
{
    class Model : INotifyPropertyChanged
    {
        // define our property chage event handler, part of data binding
        public event PropertyChangedEventHandler PropertyChanged;

        // implements method for data binding to any and all properties
        private void OnPropertyChanged(string propertyName)
        {
            if (PropertyChanged != null)
            {
                PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
            }

        }

        private double _topTopHorizontal;
        public double topTopHorizontal
        {
            get { return _topTopHorizontal; }
            set
            {
                _topTopHorizontal = value;
                OnPropertyChanged("topTopHorizontal");
            }
        }

        private double _leftTopHorizontal;
        public double leftTopHorizontal
        {
            get { return _leftTopHorizontal; }
            set
            {
                _leftTopHorizontal = value;
                OnPropertyChanged("leftTopHorizontal");
            }
        }


        public void initModel()
        {
            topTopHorizontal = 50;
            leftTopHorizontal = 50;
        }








    }
}

主要

    public partial class MainWindow : Window
    {
        private Model model;
        public MainWindow()
        {
            InitializeComponent();


        }

        private void WindowLoaded(object sender, RoutedEventArgs e)
        {
            // create an instance of our Model
            model = new Model();
            model.initModel();



        }






    }
}

【问题讨论】:

  • 您已将其放入 DataTemplate 中。这就是为什么它没有显示。你有什么要求?
  • a) 您的 xaml 中没有绑定。 b)我不明白你写的这个装置的必要性:Grid > Canvas > ItemsControlDataTemplate 内部又是Canvas > StackPanel > Canvas。你的模型中没有列表,为什么需要 ItemsControl?
  • 目前只想显示图8,后面会用到数据绑定项。

标签: c# wpf xaml logic


【解决方案1】:

您尚未为此窗口设置 DataContext。

在构造函数中添加:

public MainWindow()
    {
        InitializeComponent();

        model = new Model();

        DataContext = model;
    }

因此,您的窗口可以访问“leftTopHorizo​​ntal”和“topTopHorizo​​ntal”。

在您的 xaml 更改中:

Canvas.Top ="{Binding topTopHorizontal}"
Canvas.Left="{Binding leftTopHorizontal}"

与:

Canvas.Top ="{Binding model.topTopHorizontal}"
Canvas.Left="{Binding model.leftTopHorizontal}"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-27
    • 1970-01-01
    • 2017-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多