那麼在我的WPF應用程序中,我使用的Tab控件具有大約5個選項卡。每個選項卡的視圖都是通過工具箱添加的用戶控件。如何刷新標籤頁時的文本框文本在WPF中更改
主要XAML文件:
<Grid>
<TabControl Height="Auto" HorizontalAlignment="Stretch" Margin="0" Name="tabControl1" VerticalAlignment="Stretch" Width="Auto">
<TabItem Header="Device Control" Name="Connect">
<ScrollViewer Height="Auto" Name="scrollViewer1" Width="Auto">
<my:ConnectView Name="connectView1" />
</ScrollViewer>
</TabItem>
<TabItem Header="I2C">
<ScrollViewer Height="Auto" Name="scrollViewer2" Width="Auto">
<my1:I2CControlView Name="i2CControlView1" />
</ScrollViewer>
</TabItem>
<TabItem Header="Voltage">
<ScrollViewer Height="Auto" Name="scrollViewer3" Width="Auto">
<my2:VoltageView Name="voltageView1" />
</ScrollViewer>
</TabItem>
</TabControl>
</Grid>
如果您發現每個視圖ie.e Connect
,I2C
和Voltage
是具有視圖,視圖模型和模型類:)
每個用戶控制這些視圖在其各自的xaml文件中有一組文本框。
Connect.xaml:
<Grid>
<Textbox Text="{Binding Box}", Name="hello" />
// Some more textboxes
</Grid>
I2c.xaml:
<Grid>
<Textbox Text="{Binding I2CBox}", Name="helI2c" />
// Some more textboxes
</Grid>
Voltage.xaml:
<Grid>
<Textbox Text="{Binding VoltBox}", Name="heVoltllo" />
// Some more textboxes
</Grid>**
默認我已經將這些文本框的文本設置爲一些值。可以在我的視圖模型類中分別說「12」「13」「14」。我的主要要求是設置每個用戶控件中存在的這些文本框的文本,以便在更改選項卡時進行刷新。
說明:
可以說是顯示連接查看:文本框的值是12,我編輯,並更改爲16.現在我點擊I2C選項卡,然後我回去連接選項卡,我想要將文本框的值刷新回初始值即12。
準確地說,他們是一個名爲visibilitychanged()的方法,我可以在所有的用戶控件類中編寫這些方法,我可以在其中設置這些值Ui組件何時改變標籤?
請幫忙:)
您可以通過代碼來設置它的背後,在view.xaml中.cs文件。 – kuperspb
@kuperspb:我想做到這一點在我的ViewModel類:)你知道我們如何能做到這樣? :) – StonedJesus
是的。你可以使用EventToCommand行爲,如果你在你的mvvm庫中。我們使用Catel MVVM,所以我們有這樣的: http://catel.catenalogic.com/index.htm?behaviors_eventtocommand.htm 你需要做的背後代碼一些工作任何關係。 – kuperspb