大きなデータを読み込まなければならないので、busyIndicator
読み込み中に使用することにしました。問題は、データテキストの読み込みを示していますが、停止しないことです。
public mainWindow()
{
InitializeComponent();
rbi.IsBusy = true;
Task.Factory.StartNew(getData);
}
void getData()
{
//method which loading data and inserting them into dataGrid
Metoda();
this.Dispatcher.BeginInvoke(System.Windows.Threading.DispatcherPriority.Send,
(Action)delegate
{
rbi.IsBusy = false;
});
}
BusyIndicator
グリッドが含まれているので、次のようになります
<BusyIndicator>
<Grid>
<GridView>
....
@EDIT:方法「メトダ」:
void Metoda()
{
using (SqlConnection conn = new SqlConnection(cString.c_String))
{
conn.Open();
using (SqlCommand cmd = new SqlCommand("...", conn))
{
//when entering there, it break and doesnt continue.
using (SqlDataReader rdr = cmd.ExecuteReader())
{
while (rdr.Read())
{
needUpdate = rdr.GetBoolean(rdr.GetOrdinal("needUpdate"));
}
}
}
}
if(needUpdate)
{
//loading data into static list of 'Product' type (read from DB using dataReader and add into static list - prodList)
FastSellSearchClass.GetProducts(wID);
}
GetProducts("", -1);
}
void GetProducts()
{
(...)
//set itemssource = static list from previous method
gridView.ItemsSource = FastSellSearchClass.prodList;
}
@EDIT2: XAML ファイル:
<Grid>
<my:BusyIndicator Name="rbi" IsIndeterminate="True">
<my:GridView IsReadOnly="True" Name="productsDG" AutoGenerateColumns="False">
<my:GridView.Columns>
(...columns...)
</my:GridView.Columns>
</my:GridView>
</my:BusyIndicator>
</Grid>
</Window>