모든 응용 프로그램에서 기본으로 사용하려는 자체 정의 된 프레임 워크에 BaseWindowView
및 BaseViewModel
을 만들었습니다.응용 프로그램에서 프레임 워크의보기를 사용하려면 어떻게해야합니까? (WPF MVVM)
BaseViewModel
에는 예를 들어 버튼을 추가 할 수있는 방법이 있습니다. Command
, ButtonImage
및 LabelString
을 정의 할 수 있습니다.
<ItemsControl x:Name="CButtons" ItemsSource="{Binding Buttons}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel x:Name="ButtonStackPanel" Orientation="Horizontal">
</StackPanel>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<ribbon:RibbonButton
x:Uid="Button"
LargeImageSource="{Binding Path=ImageString}"
Label="{Binding Path=LabelString}"
Command="{Binding Path=ButtonCommand}" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
내가 가진 내 BaseWindowView
에서
AddButton(OpenAnyTabCommand, "../Images/image.png", "LabelString");
나는 내가 BaseViewModel
에서 정의한 RibbonButtons
모두 표시됩니다 RibbonMenue
이 다음은 샘플이 메소드의 호출 코드는 이 샘플 프로젝트에서, 그리고 그것은 잘 작동합니다. 이제 BaseWindowView
과 BaseViewModel
을 프레임 워크에 아웃소싱하여 거기에서 사용하고 싶습니다.
나의 계획은 : 내 모든 응용 프로그램에서 BaseWindowView
을 내 응용 프로그램의 MainWindow
으로 설정하고 싶습니다. 이 응용 프로그램 자체에서 나는 단지 UserControls
을 내 BaseWindowView
에 탭으로 표시해야합니다. BaseViewModel
에 정의한 버튼은 새 탭을 열고 정의 된 Command
을 호출해야하며이 Command
뒤에 ViewModel
을 표시합니다.
내 문제를 해결하는 가장 좋은 방법은 무엇입니까? XAML에는 "고전적인 상속"이 없다는 것을 알고 있습니다. 프레임 워크 뷰에 App.xaml
에있는 StartUpUri
을 정의하거나 "약간"더 까다로운 작업을 수행 할 수 있습니까? 부가로
<DataTemplate DataType="{x:Type ViewModel:AnyViewModel}">
<view:TabItemAny/>
</DataTemplate>
@Sheridan을 : 다음은 BaseWindowView
에 대한 질문은 나는 다음과 같은 App.xaml
에 (UserControls
있습니다)에 TabItems
에 대한 DataTemplate
을 정의 할 수 있음을 발견했다. 좋아
질문은 매우 명확하지 않다 : 문제는 무엇인가? 그리고 XAML 상속과 같은 것이 없다는 것을 알고 있습니까? –
예, "고전적인 상속"이 없음을 알고 있습니다. 내 질문은 어떻게 내가보기의 상속과 같은 일을 할 수 있습니다. 내 'Framework-View'를 내 응용 프로그램의 MainWindow로 표시하고이 윈도우에서 Tab을 여는 데 필요한 UserControls를 추가하고 싶습니다. – Tobias
@Sheridan, 여기에 질문이 있습니다 – Tobias