![](/img/trans.png)
[英]How do I call a function in a C++ Dll from C# that has void* callback and object parameter
[英]How do I get an object from another void c#
我想從Timer_Elapsed
方法更改item.header
。 我怎樣才能實現它? 這是我的代碼:
namespace Oceansurfer
{
public sealed partial class MainPage : Page
{
public MainPage()
{
this.InitializeComponent();
System.Timers.Timer timer = new System.Timers.Timer();
timer.Interval = 5000;
timer.AutoReset = true;
timer.Elapsed += Timer_Elapsed;
timer.Start();
}
public void TabView_Loaded(object sender, RoutedEventArgs e)
{
TabViewItem item = CreateNewTab(1);
item.Header = Shared.FileHelper.ReadTitleFromFile();
(sender as TabView).TabItems.Add(item);
}
public void Timer_Elapsed(object sender, ElapsedEventArgs e)
{
}
}
}
請,如果你能回答這個問題,我將非常感激。
您可以定義一個私有成員,在這種情況下,當前 class 的所有方法都可以訪問該項目,也可以使用 TabView 的 TabItems 獲取最新項目。 另外,如果要在Timer_Elapsed方法中改變TubeViewItem的Header,由於定時器是配合工作線程使用的,UI需要在UI線程中更新,所以需要使用Dispatcher.RunAsync方法回到UI線程.
private TabViewItem currentItem;
public async void Timer_Elapsed(object sender, ElapsedEventArgs e)
{
await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
{
//TabViewItem item = Tabs.TabItems[Tabs.TabItems.Count-1] as TabViewItem;
currentItem.Header = "hello2";
});
}
private void Tabs_Loaded(object sender, RoutedEventArgs e)
{
TabViewItem item = CreateNewTab(1);
item.Header = Shared.FileHelper.ReadTitleFromFile();
(sender as TabView).TabItems.Add(item);
currentItem = item;
}
您不能從另一種方法中訪問一種方法的局部變量。 但是,有多種方法可以通過不同的方法訪問同一個 object。 程序方式是將其作為一種方法的結果返回和/或將其作為參數傳遞給另一種方法。 object 面向(和推薦)的方式是,當方法都是同一個 class 的一部分時,為要在多個方法中訪問的 object 創建一個字段(或屬性)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.