![](/img/trans.png)
[英]How to refresh dependent column in WPF datagrid when another column is changed?
[英]Refresh/Reload MUI WPF Page when Tab is Changed
我正在使用用於WPF的Modern UI開發桌面應用程序。 當我轉到新的標簽頁時,我嘗試刷新我的標簽頁,但是無法。
當我使用選項卡控制器轉到另一個頁面時,我想刷新MUI WPF選項卡頁面。
誰能幫我?
我不太清楚您的確切意思,但是通過在控件上調用InvalidateVisual()可以強制對其進行視覺刷新,因為這聽起來像您擁有的WPF控件不數據更改時不會更新。
根據MSDN文檔 ,這是:
使元素的呈現無效,並強制執行完整的新布局。 在布局周期完成后調用OnRender 。
例如:
var grid = new Grid();
// Our grid should refresh after this,
// although in normal circumstances it would by default regardless.
grid.InvalidateVisual();
我希望這是有用的。
您可以使用SelectionChanged事件來處理此問題。 您可以使用SelectionChanged刷新MUI WPF選項卡頁面。
<TabControl x:Name="MyTab" SelectionChanged="MyTabControl_SelectionChanged">
<TabItem x:Name="TabItem1" Header="Tab 1"/>
<TabItem x:Name="TabItem2" Header="Tab 2"/>
<TabItem x:Name="TabItem3" Header="Tab 3"/>
</TabControl>
然后,您可以在事件中訪問每個TabItem:
private void MyTabControl_SelectionChanged(object sender, SelectionChangedEventArgs e){
if (TabItem1.IsSelected){}
if (TabItem2.IsSelected){}
if (TabItem3.IsSelected){}
}
雖然選擇的答案還可以,但這可能不是解決問題的最佳方法。
MUI包含一個內容導航框架,該框架根據鏈接uri處理內容的加載,卸載和歷史導航。 如果您希望您的內容了解導航事件,例如已加載和已卸載事件,則需要實現一個接口。
通過實現FirstFloor.ModernUI.Windows命名空間中可用的IContent接口,使您的內容導航意識。
一個簡單的例子是:
public class MyContent : UserControl, IContent
{
public void OnFragmentNavigation(FragmentNavigationEventArgs e)
{
}
public void OnNavigatedFrom(NavigationEventArgs e)
{
}
public void OnNavigatedTo(NavigationEventArgs e)
{
//Refresh your page here
}
public void OnNavigatingFrom(NavigatingCancelEventArgs e)
{
// ask user if navigating away is ok
if (ModernDialog.ShowMessage("Navigate away?", "navigate", MessageBoxButton.YesNo) == MessageBoxResult.No) {
e.Cancel = true;
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.