Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从视图中获取对象TextBlock并在ViewModel中对其进行操作?_C#_Wpf_Caliburn.micro - Fatal编程技术网

C# 如何从视图中获取对象TextBlock并在ViewModel中对其进行操作?

C# 如何从视图中获取对象TextBlock并在ViewModel中对其进行操作?,c#,wpf,caliburn.micro,C#,Wpf,Caliburn.micro,我正在使用Caliburn.Micro和c 我想要一种方法,比如在android中,通过id在xaml视图中查找TextBlock,这样我就可以操纵它的属性 我本来想做这样的事情,但是为了c: TextBlock textblock = (TextBlock ) myView.findViewById(R.id.myTextBlock); 所以我可以折叠起来,让它再次可见 <TextBlock x:Name="MyTextBlockId" Text="Inc

我正在使用Caliburn.Micro和c

我想要一种方法,比如在android中,通过id在xaml视图中查找TextBlock,这样我就可以操纵它的属性

我本来想做这样的事情,但是为了c:

TextBlock textblock = (TextBlock ) myView.findViewById(R.id.myTextBlock);
所以我可以折叠起来,让它再次可见

<TextBlock x:Name="MyTextBlockId"
               Text="Incorrect user credentials. Forgot password, click here" 
               Visibility="Collapsed"/>
MVVM方法

视图模型

class MyViewModel : PropertyChangedBase
{
    private bool _isBadLogin;

    public bool IsBadLogin
    {
        get => _isBadLogin;
        set => Set(ref _isBadLogin, value);
    }
}
XAML


您试图从哪个类操作TextBlock?它是一个登录页面。所以,在一次失败的尝试中,我将取消折叠一个文本块,该文本块将显示忘记密码单击此处。我打算在viewmodel中执行此操作,您不应该在viewmodel中执行控制操作。视图应该知道viewmodel。而不是相反。例如,如果您有一个名为IsBadLogin的布尔属性,则可以将TextBlock的可见性绑定到该属性,并使用BooleanToVisibilityConverter。对于任何使用caliburn.Micro的人,您不需要扩展PropertyChangedBase,因为Screen继承PropertyChangedBase。始终是Prism/MVVMLight的人:
<TextBlock x:Name="MyTextBlockId"
           Text="Incorrect user credentials. Forgot password, click here" 
           Visibility="{Binding IsBadLogin, Converter={StaticResource BooleanToVisibilityConverter}"/>