0

大きなデータを読み込まなければならないので、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>
4

1 に答える 1