关于编写WPF UserControl时提示The name 'InitializeComponent' does not exist in the current contextr的解决!

1、打开.csproj(工程)文件。

2、找到<Import Project="$(MSBuildBinPath)/Microsoft.CSharp.targets" />这一行

3、在这一行下面添加<Import Project="$(MSBuildBinPath)/Microsoft.WinFX.targets" />

4、保存文件。

 这时就可以编译通过了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
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)); } } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值