Я новичок в WPF, начал пытаться изучить его в среду. Я начал изучать Caliburn.Micro и MVVM, и я использовал пакет Nuget MaterialDesignInXAML для материального дизайна в приложении. На основе этого я создал базовое приложение c, которое хочу использовать. В этом приложении есть выдвигающееся сбоку меню ящика. В этом меню у меня есть несколько кнопок. Я хочу иметь возможность нажимать эти кнопки и получать обновление ContentControl с соответствующими представлениями UserControl, которые я создал. У меня есть LoadHome()
в методе publi c ShellViewModel(){LoadHome();}
, и он загружается, когда я запускаю приложение, однако нажатие кнопок в меню не обновляет элемент управления контентом и не вызывает никаких точек останова, даже если он использует тот же синтаксис x:Name=""
, который используют другие. Если я уберу кнопки из меню и помещу их после, нажатие кнопки будет работать должным образом и обновит элемент управления содержимым.
Мой код
ShellView.XAML
<DockPanel>
<Button x:Name="LoadHome"
Margin="4" HorizontalAlignment="Center"
Style="{DynamicResource MaterialDesignFlatButton}">
HOME
</Button>
<Button x:Name="LoadBlobPurge"
Margin="4" HorizontalAlignment="Center"
Style="{DynamicResource MaterialDesignFlatButton}"
materialDesign:RippleAssist.Feedback="{Binding RelativeSource={RelativeSource
Self}, Path=Foreground, Converter={StaticResource BrushRoundConverter}}"
>
BLOB PURGE TOOL
</Button>
<Button Command="{x:Static materialDesign:DrawerHost.CloseDrawerCommand}"
Margin="4" HorizontalAlignment="Center"
Style="{DynamicResource MaterialDesignFlatButton}">
APP 2
</Button>
<Button Command="{x:Static materialDesign:DrawerHost.CloseDrawerCommand}"
Margin="4" HorizontalAlignment="Center"
Style="{DynamicResource MaterialDesignFlatButton}">
APP 3
</Button>
<Button Command="{x:Static materialDesign:DrawerHost.CloseDrawerCommand}"
Margin="4" HorizontalAlignment="Center"
Style="{DynamicResource MaterialDesignFlatButton}">
CLOSE
</Button>
<Button x:Name="LoadHowTo"
Margin="4" HorizontalAlignment="Center"
Style="{DynamicResource MaterialDesignFlatButton}">
<materialDesign:PackIcon Kind="About" />
</Button>
**ShellViewModel.cs**
public class ShellViewModel : Conductor<object>
{
public ShellViewModel()
{
LoadHome();
}
public void LoadHome()
{
ActivateItem(new HomeViewModel());
}
public void LoadBlobPurge()
{
ActivateItem(new BlobPurgeViewModel());
}
public void LoadHowTo()
{
ActivateItem(new HowToViewModel());
}
public void LoadApp2()
{
}
public void LoadApp3()
{
}
}