Wpf 如何在设置属性后仅进行一次UserControl初始化

Wpf 如何在设置属性后仅进行一次UserControl初始化,wpf,xaml,user-controls,Wpf,Xaml,User Controls,代码: XAML: 您可以在加载的事件处理程序中调用初始化方法: <local:MyControl Size="10"/> 您可以在已加载的事件处理程序中调用Initialize方法: <local:MyControl Size="10"/> 虽然您可以使用加载的事件,但它仍然可以被多次调用(事件本身,以及您的函数)。如果你只想让你的函数运行一次,你可以让一个bool类成员来检测函数是否已经被调用,并忽略函数的任何未来调用?类似于:虽然您可以使用加载的事件,但它仍然可

代码:

XAML:


您可以在加载的
事件处理程序中调用
初始化
方法:

<local:MyControl Size="10"/>

您可以在已加载的
事件处理程序中调用
Initialize
方法:

<local:MyControl Size="10"/>

虽然您可以使用加载的
事件,但它仍然可以被多次调用(事件本身,以及您的函数)。如果你只想让你的函数运行一次,你可以让一个bool类成员来检测函数是否已经被调用,并忽略函数的任何未来调用?类似于:虽然您可以使用加载的
事件,但它仍然可以被多次调用(事件本身,以及您的函数)。如果你只想让你的函数运行一次,你可以让一个bool类成员来检测函数是否已经被调用,并忽略函数的任何未来调用?比如:
<local:MyControl Size="10"/>
public partial class MyControl : UserControl
{
    int size = 8;

    public int Size
    {
        get { return size; }
        set { size = value; }
    }

    public MyControl()
    {
        InitializeComponent();

        Loaded += (o, e) => Initialize();
    }

    void Initialize()
    {
        // ...
    }
}