У меня есть проект WPF с RibbonWindow как MainWindow, и я использую Catel.WPF ContentControl не разрешает корректный вид из ViewModel (Catel)
/просмотров/MainWindow:
public partial class MainWindow : MainWindowBase
{
public MainWindow()
{
InitializeComponent();
}
}
Этот MainWindow является производным от MainWindowBase. MainWindowBase получен из RibbonWindow и реализует IDataWindow, как описано в документации Catel.
public class MainWindowBase : RibbonWindow, IDataWindow
{
private readonly WindowLogic _logic;
//...
}
MainWindow конкретизируется путем StartupUri = "/ Views/MainWindow.xaml" и правильный MainWindowViewModel решен и экземпляр.
В MainWindow у меня есть элемент управления содержимым, который связан с CurrentViewModel собственности в моем MainWindowViewModel
<ContentControl DockPanel.Dock="Bottom" Content="{Binding Path=CurrentViewModel}"></ContentControl>
/ViewModels/MainWindowViewModel:
public class MainWindowViewModel : ViewModelBase
{
//..
public static readonly PropertyData CurrentViewModelProperty = RegisterProperty("CurrentViewModel", typeof(ViewModelBase), null);
public ViewModelBase CurrentViewModel
{
get { return GetValue<ViewModelBase>(CurrentViewModelProperty); }
set { SetValue(CurrentViewModelProperty, value); }
}
//..
}
Это свойство устанавливается в AddressViewModel, который также полученные от ViewModelBase
/ViewModels/AddressViewModel:
public class AddressViewModel : ViewModelBase
{
}
У меня есть AddressView, который является производным от Catel.Windows.Controls.UserControl: /просмотров/AddressView:
public partial class AddressView : Catel.Windows.Controls.UserControl
{
public AddressView()
{
InitializeComponent();
}
}
Проблема в том, что связанный с ним AddressView не решен, и контроль контента просто показывает имя AddressViewModel.
Я также добавил DataTemplate в App.xaml, как показано ниже, без эффекта.
<DataTemplate DataType="x:Type vm:AddressViewModel">
<view:AddressView />
</DataTemplate>
Что мне не хватает?
Спасибо!
Не должно быть так: '{x: Тип vm: AddressViewModel}'? Кронштейны? – Tony
Вот и все, Тони! Ты спас мой день! Я был уверен, что это должно быть что-то простое, но не так просто. К сожалению, Visual Studio не жаловалась на неправильный синтаксис. Большое спасибо!! – Stefan
@Tony Пожалуйста, напишите свой комментарий как ответ. –