簡體   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