我當然希望這個問題很容易回答,但這已經過去了幾天,我還沒有想出如何在UserControl之間共享數據。在多個視圖中共享ViewModel
下面的頁面有兩個選項卡,並且它們的源被引用。它還有一個標籤爲Start的按鈕,用於訪問ViewModel中的命令。
我遇到的問題是數據實際上在選項卡內。我將它們設置爲使用相同的ViewModel,並且它們都創建了自己的ViewModel實例,因此數據永遠不會顯示到「開始」按鈕。我希望從那以後。
這是一個相當簡單的程序,我真的沒有看到需要有3個獨立的ViewModels只包含單個元素,但也許這就是我需要做的。總而言之,我仍然需要收集所有數據,並在按下該開始按鈕時將其提交給外部實體。
我很抱歉,如果這是一個問題之前已經問過,但我相對較新的C#所以我不完全確定我在問什麼。提前致謝!
<UserControl
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mui="http://firstfloorsoftware.com/ModernUI"
x:Class="DeployWiz.Pages.Config"
mc:Ignorable="d"
xmlns:local="clr-namespace:DeployWiz.ViewModel"
d:DesignHeight="356.978" d:DesignWidth="333.582">
<Grid Style="{StaticResource ContentRoot}" Margin="16,28,16,5" >
<Grid.DataContext>
<local:ComputerViewModel/>
</Grid.DataContext>
<mui:ModernTab x:Name="tabList" Layout="List" SelectedSource="/Views/ComputerView.xaml" Margin="0,0,0,40">
<mui:ModernTab.Links>
<mui:Link DisplayName="Settings" Source="/Views/ComputerView.xaml" />
<mui:Link DisplayName="Applications" Source="/Views/ApplicationView.xaml" />
</mui:ModernTab.Links>
</mui:ModernTab>
<Button Content="Start" HorizontalAlignment="Center" Margin="0,0,0,5" VerticalAlignment="Bottom" Width="75" Command="{Binding Path=StartTask}"/>
</Grid>
</UserControl>