首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >命名的Xaml控件不显示在CodeBehind中

命名的Xaml控件不显示在CodeBehind中
EN

Stack Overflow用户
提问于 2019-03-26 04:17:48
回答 2查看 225关注 0票数 1

我在WPF中使用caliburn.micro。尽管我将x:Name设置为我的元素(它是xaml格式),但我在后面的代码(在我的ViewModel中)中看不到元素(按钮、文本框、网格等)。就好像x:Name是私有的

例如:

代码语言:javascript
复制
<Button x:Name="mybutton">    
        <StckPanel Orientation="Horizontal">
                <Image Width="30" Source="/Resources/edit.png" />
                <TextBlock Margin="5" FontSize="15" Text="Update"> 
                </TextBlock>
        </StackPanel>
</Button>
EN

回答 2

Stack Overflow用户

发布于 2019-03-26 08:10:43

X:Name不会将视图元素暴露给ViewModel,事实上,正如Clemens正确指出的那样,您不应该尝试从View Model访问视图元素。

如果您打算使用Caliburn Micro约定在Button Click (从上面的xaml)上调用一个方法,那么您应该编写一个对应于x:Name的方法。例如,

代码语言:javascript
复制
public void mybutton()
{
  // Do something
}

这将在每次单击带有x:Name mybutton的按钮时调用mybutton() method

票数 1
EN

Stack Overflow用户

发布于 2019-03-26 14:38:44

您不能在ViewModel中使用名称访问您的XAML元素。只能在代码隐藏文件中访问XAML元素。例如,您的XAML是MainWindow.xaml,那么您只能访问MainWindow.xaml.cs文件中的XAML元素。在项目中应用MVVM模式的主要目的是使视图(xaml)和业务逻辑(ViewModel)松散耦合。阅读有关MVVM here的更多信息。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55345776

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档