I want to show Components in a tabs , so first of all create few components. In this project we have three components, First View Component public class AllViewComponent : ViewComponent { private readonly UserManager<ApplicationUser> _userManager; public AllViewComponent(UserManager<ApplicationUser> userManager) { _userManager = userManager; } public async Task<IViewComponentResult> InvokeAsync() { List<StudentViewModel> allUsers = new List<StudentViewModel>(); var items = await _userManager.Users.ToListAsync(); foreach (var item in items) { allUsers.Add(new StudentViewModel {Id=item.Id, EnrollmentNo = item.EnrollmentNo, FatherName = item.FatherName, Name = item.Name, Age = item.Age, Birthdate = item.Birthdate, Address = item.Address, Gender = item.Gender, Email = item.Email }); }
Background Worker is used to do processing in background. I mean to say that if you have two work and you want to do complete both task at same time then must to use BackgroundWorker class. You can do two task at same time , like in gmail, attach a file with writing some text in the Text. Use this example and see more things about BackgroundWorker class.
XAML Code:
<Grid>
<Button Content="Run BackGround Work" HorizontalAlignment="Left" Margin="38,32,0,0" VerticalAlignment="Top" Width="209" Click="Button_Click"/>
<Label Content="" HorizontalAlignment="Left" Margin="38,68,0,0" VerticalAlignment="Top" Name="processlbl"/>
<Label Content="" HorizontalAlignment="Left" Margin="217,68,0,0" VerticalAlignment="Top" Name="Completelbl"/>
<Button Content="Other Task" HorizontalAlignment="Left" Margin="48,157,0,0" VerticalAlignment="Top" Width="199" Click="Button_Click_1"/>
<TextBox Name="t1" HorizontalAlignment="Left" Height="23" Margin="48,198,0,0" TextWrapping="Wrap" Text="" VerticalAlignment="Top" Width="199"/>
<Label Content="" HorizontalAlignment="Left" Margin="60,226,0,0" VerticalAlignment="Top" Name="outputlbl"/>
</Grid>
Code Behind Code:
using System.ComponentModel;
using System.Windows;
namespace WpfApplication11
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
BackgroundWorker worker = new BackgroundWorker();
public MainWindow()
{
InitializeComponent();
worker.DoWork += worker_Dowork;
worker.RunWorkerCompleted += worker_RunworkerCompleted;
}
private void worker_RunworkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
if (!e.Cancelled)
{
Completelbl.Content = "Complete Backgroung Work";
}
else
{
Completelbl.Content = "Fail";
}
}
private delegate void mydelegate(int i);
private void displayi(int i)
{
processlbl.Content = "Background work:" + i.ToString();
}
private void worker_Dowork(object sender, DoWorkEventArgs e)
{
for (int i = 0; i < 20; i++)
{
System.Threading.Thread.Sleep(2000);
if(worker.CancellationPending)
{
e.Cancel = true;
return;
}
mydelegate deli = new mydelegate(displayi);
processlbl.Dispatcher.BeginInvoke(System.Windows.Threading.DispatcherPriority.Normal, deli, i);
}
}
private void Button_Click(object sender, RoutedEventArgs e)
{
worker.RunWorkerAsync();
}
private void Button_Click_1(object sender, RoutedEventArgs e)
{
outputlbl.Content = t1.Text;
}
}
}
Comments
Post a Comment