如何取消订阅派生控件中的已加载事件
本文关键字:控件 事件 加载 派生 何取消 取消 | 更新日期: 2023-09-27 18:08:59
我只是在玩网格类,使其为"cleaver"。所以我希望能够在xaml中使用它,并指定我想要多少行,或列等,我有下面的代码。这一切都很好,我使用加载的事件来添加行和列,但现在我在想我应该如何从这个事件退订?我找不到怎么做的直接信息?
public class MyFormGrid : Grid
{
public static readonly DependencyProperty ColumnsProperty =
DependencyProperty.Register("Columns", typeof(int), typeof(ASLFormGrid), new PropertyMetadata(0));
public static readonly DependencyProperty RowsProperty =
DependencyProperty.Register("Rows", typeof(int), typeof(ASLFormGrid), new PropertyMetadata(0));
public MyFormGrid()
{
Loaded += MyGrid_Loaded;
}
public int Columns
{
get { return (int)GetValue(ColumnsProperty); }
set { SetValue(ColumnsProperty, value); }
}
public int Rows
{
get { return (int)GetValue(RowsProperty); }
set { SetValue(RowsProperty, value); }
}
private void MyGrid_Loaded(object sender, RoutedEventArgs e)
{
for (var i = 0; i < Columns; i++)
{
ColumnDefinitions.Add(new ColumnDefinition());
}
for (var i = 0; i < Rows; i++)
{
RowDefinitions.Add(new RowDefinition(););
}
}
}
亲切的问候
这可以很容易地放在您加载的事件处理程序中:
public class MyFormGrid : Grid
{
...
public MyFormGrid()
{
Loaded += MyGrid_Loaded;
}
...
private void MyGrid_Loaded(object sender, RoutedEventArgs e)
{
Loaded -= MyGrid_Loaded;
...
}
}