你好得到了下面的wpf代码,它使用了mvvm社区工具包版本8的源代码生成器:
public partial class CalculatorVM : ObservableObject
{
[ObservableProperty]
private int buttonOne = 1;
[ObservableProperty]
private int buttonTwo = 2;
[ObservableProperty]
private int buttonThree = 3;
[ObservableProperty]
private int buttonFour = 4;
[ObservableProperty]
private int buttonFive = 5;
[ObservableProperty]
private int buttonSix = 6;
[ObservableProperty]
private int buttonSeven = 7;
[ObservableProperty]
private int buttonEight = 8;
[ObservableProperty]
private int buttonNine = 9;
[ObservableProperty]
private double result, lastNumber;
[ObservableProperty]
SelectedOperator selectedOperator;
[ObservableProperty]
private int clickedNumber;
[ObservableProperty]
private Label resultLabel;
[RelayCommand]
public void NumbercClicked(int number)
{
var selectedNumber = number switch
{
1 => ButtonOne,
2 => ButtonTwo,
3 => ButtonThree,
4 => ButtonFour,
5 => ButtonFive,
6 => ButtonSix,
7 => ButtonSeven,
8 => ButtonEight,
9 => ButtonNine,
};
ClickedNumber = selectedNumber;
if (ClickedNumber == 0) Result = 0;
else Result = Result + selectedNumber;
}
我无法编译,告诉我buttonOne等在当前上下文中不存在,Repo:有人知道吗?
1条答案
按热度按时间jpfvwuh41#
您有旧格式的csproj。
这些文件明确列出了属于项目一部分的文件:
当代码生成器在一个新格式项目中创建一个新文件时,该文件会自动包含在项目中。新样式项目包含其文件夹中的所有内容。
旧样式仅包括ItemGroup中列出的内容。
如果正在创建分部类,那么这就是它们将被忽略的原因。
您需要将csproj升级为新格式。
最简单的方法通常是创建一个新的解决方案和项目,从旧的解决方案中复制源文件。
如果你真的想用新的格式csproj,你可以把目标定在.net 4.8上。为此,要小心选择wpf项目模板。vs2022中有两个模板。