Wpf usercontrol remove/add

 做一下笔记明天上班赶紧补上!

今天在公司快下班了发现问题。

不知道如何去删除usercontrol 从窗体中。郁闷!

记下来实现方式:

定义一个类f_BaseControl 继承 UserControl

里面定义 事件和委托 ,和执行事件的方法

 

用户控件 UserControl1 继承 UserControl 里面添加一个button

 

 

 

button 事件 调用父类 f_BaseControl  的方法

 

 

 

最后在窗体中添加一个容器。

动态将 UserControl1 添加到容器中

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
WPF UserControl 绑定一般分为两种情况: 1. UserControl 内部控件与 ViewModel 绑定 在 UserControl 内部控件与 ViewModel 绑定时,需要给 UserControl 的 DataContext 属性设置为 ViewModel 的实例,然后在控件内部使用 Binding 绑定控件的属性与 ViewModel 的属性即可。 2. UserControl 的依赖属性绑定 在 UserControl 中定义依赖属性时,可以使用 DependencyProperty.Register 方法来注册依赖属性。然后在使用 UserControl 的地方,就可以使用 Binding 绑定 UserControl 的依赖属性与 ViewModel 的属性。 下面是一个示例: UserControl XAML 代码: ```xml <UserControl x:Class="MyUserControl" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> <Grid> <TextBox Text="{Binding Text, Mode=TwoWay}" /> </Grid> </UserControl> ``` UserControl CodeBehind 代码: ```csharp public partial class MyUserControl : UserControl { public static readonly DependencyProperty TextProperty = DependencyProperty.Register("Text", typeof(string), typeof(MyUserControl)); public string Text { get { return (string)GetValue(TextProperty); } set { SetValue(TextProperty, value); } } public MyUserControl() { InitializeComponent(); DataContext = this; } } ``` 使用 MyUserControl 的地方: ```xml <Window x:Class="MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="clr-namespace:MyNamespace" Title="MainWindow"> <StackPanel> <local:MyUserControl Text="{Binding MyText, Mode=TwoWay}" /> <TextBlock Text="{Binding MyText}" /> </StackPanel> </Window> ``` MainWindow CodeBehind 代码: ```csharp public partial class MainWindow : Window, INotifyPropertyChanged { private string _myText; public string MyText { get { return _myText; } set { _myText = value; OnPropertyChanged(nameof(MyText)); } } public MainWindow() { InitializeComponent(); DataContext = this; } public event PropertyChangedEventHandler PropertyChanged; protected void OnPropertyChanged(string propertyName) { PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } } ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值