C# 如何访问控件属性?

C# 如何访问控件属性?,c#,.net,wpf,xaml,C#,.net,Wpf,Xaml,我有一些文本框。我正在应用MVVM模型,其中一个文本框有按键事件。无法访问MVVM模型内的文本框属性和标签属性。如何访问它们?当我按下divide_txt_KeyDown键时,我可以在计算内部调用它们吗?假设这些文本框位于dataTemplate内 <TextBox x:Name="a1" Width="96" Canvas.Top="300" Canvas.Left="20"></TextBox> <TextBox x:Name="a2" Widt

我有一些文本框。我正在应用MVVM模型,其中一个文本框有按键事件。无法访问MVVM模型内的文本框属性和标签属性。如何访问它们?当我按下divide_txt_KeyDown键时,我可以在计算内部调用它们吗?假设这些文本框位于dataTemplate内

<TextBox x:Name="a1" Width="96" Canvas.Top="300" Canvas.Left="20"></TextBox>
        <TextBox x:Name="a2" Width="96" Canvas.Top="300" Canvas.Left="144"/>
        <TextBox x:Name="add_txt" Width="96" Canvas.Top="344" Canvas.Left="20"/>        
        <TextBox x:Name="multiple_txt" Width="96" Canvas.Top="344" Canvas.Left="144"/>
        <TextBox x:Name="divide_txt" Width="96" Canvas.Top="344" Canvas.Left="264"  KeyDown="divide_txt_KeyDown" />

如果您试图访问视图模型中的控件属性,那么您完全误解了MVVM设计模式的含义。然后,您还可以去掉
ItemViewModel
类,将所有代码放在视图的代码后面

视图模型不应该有任何关于控件的知识。您应该做的是将视图中
文本框
文本
属性绑定到视图模型中的
字符串
属性,并在视图模型类中设置这些源属性:

<TextBox Binding="{Binding A1}" />
<TextBox Binding="{Binding A2}" />
<TextBox Binding="{Binding Add}" /> 

确保视图模型类正确实现了
INotifyPropertyChanged
接口:

应使用命令处理
KeyDown
事件。请参阅下面的链接以了解更多信息


在MVVM WPF应用程序中处理事件:

假设这些文本框位于datatemplate内。我正在用combobox绑定它们。所以,使用INotifyPropertyChanged实现了这个,并为此实现了mvvm模型。这是一个问题吗?答案是一样的。combobox肯定需要为我的程序更改InotifyProperty。所以文本框绑定到combobox的选定值并添加到listbox。那我一定要知道MVVM模型!还有模型内的文本框。你的原始问题中没有提到组合框,所以我不知道你在说什么。如果您的问题已经解决,请记住接受答案,如果您有新问题,请询问另一个问题。这个问题已经得到回答:您不访问视图模型类中的控件。您应该阅读一下MVVM:
<TextBox Binding="{Binding A1}" />
<TextBox Binding="{Binding A2}" />
<TextBox Binding="{Binding Add}" />