繁体   English   中英

使用 C# 更改 XAML 元素的内容

[英]Change content of a XAML-element with C#

在我的主要 XAML 页面中有一个ScrollViewer 在此ScrollViewer中,我想根据我的主 C# 代码中的 boolean 变量显示两个不同的 XAML 页面。 要在ScrollViewer中仅显示一个 XAML 页面,此代码有效:

<ScrollViewer HorizontalAlignment="Left" Height="323" Name="Schieber">
   <local:Scrollanwendung_standard/>
</ScrollViewer>

正如我所说,还有另一个名为Scrollanwendung_anwendung的 XAML 页面,我想根据 boolean 变量进行显示。

在主要的 C# 代码中,我尝试了以下解决方案,但不起作用:

if(x==true)
{
   Schieber.Content=Scrollanwendung_admin
}
else
{
   Schieber.Content=Scrollanwendung_standard
}

如何使用 boolean 变量更改名为SchieberScrollViewer的内容?

设置ScollViewer的内容应该可以正常工作。 我假设Scrollanwendung_adminScrollanwendung_standard是类型,而不是实例。

<ScrollViewer HorizontalAlignment="Left" Height="323" Name="Schieber">
<local:Scrollanwendung_standard/>
</ScrollViewer>

在 XAML 中,上面的行将创建一个新Scrollanwendung_standard实例。 但是,在您的代码中,您将类型分配为内容,而不是实例

if (x)
{
   Schieber.Content = new Scrollanwendung_admin();
}
else
{
   Schieber.Content = new Scrollanwendung_standard();
}

您可以将两个页面都放在ScrollViewer中并隐藏一个。 然后,每当值发生变化时,您将显示另一页并隐藏第一个页面。 像这样的东西:

SomeWindow.xaml

<ScrollViewer HorizontalAlignment="Left" Height="323" Name="Schieber">
    <Grid>
        <local:Scrollanwendung_standard x:Name="pageOne"/>
        <local:Scrollanwendung_anwendung x:Name="pageTwo" Visibility="Hidden"/>
    </Grid>
</ScrollViewer>

SomeWindow.xaml.cs

if(x==true)
{
    pageOne.Visibility = Visibility.Hidden;
    pageTwo.Visibility = Visibility.Visible;
}
else
{
    pageOne.Visibility = Visibility.Visible;
    pageTwo.Visibility = Visibility.Hidden;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM