簡體   English   中英

WPF通過按鈕從另一個控件更改ContentControl模板

[英]WPF Changing ContentControl Template via Button from another control

我具有以下控件/視圖:

  • myControlUserControl.Resources包含一個ContentControl兩個ControlTemplates
  • 具有myControl 實例ToggleButton的 主應用程序(Window)

我想通過主應用程序中的ToggleButton在兩個ControlTemplates之間進行切換。

這應該很容易...但是我找不到合適的方法:S

一個更簡單的解決方案是綁定到內容控件的content屬性,並為每種類型的內容定義數據模板。

<Window.Resources>

    <DataTemplate DataType="{x:Type local:MyType1}">
        <Border Background="Red" />
    </DataTemplate>

    <DataTemplate DataType="{x:Type local:MyType2}">
        <Border Background="Green" />
    </DataTemplate>

</Window.Resources>

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="*" />
        <RowDefinition Height="24" />
    </Grid.RowDefinitions>
    <ContentControl Content="{Binding MyContent}" />
    <ToggleButton Grid.Row="1"
                  Content="Toggle"
                  IsChecked="{Binding IsChecked}" />
</Grid>

//DataContext
public bool IsChecked
{
  get { return isChecked_; }

  set 
  { 
    isChecked_ = value;
    NotifyPropertyChanged_("IsChecked");

    if (value)
      MyContent = new MyType1();
    else
      MyContent = new MyType2();
  }
}

public object MyContent
{
    get { return myContent_; }
    set 
    {
       myContent = value;
       NotifyPropertyChange_("MyContent");
    }

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM