2012-05-02 17 views
0

でListBoxItemを追加します。そこに私は、完全にリストボックスにプログレスバーを働いてListBoxItemを追加することが可能であるか疑問に思ってねえプログレス

状況は次のとおりです。

私はActionlogとして使用するリストボックスを持って、私はプログラムでdownloadfunctionを持っていると私はダウンロードを開始するときには、ログに表示されます。

は、今私はdownloadprogressを示しログにプログレスバーを追加したかったです。

私は自分自身でそれを試してみましたが、あまり成功した:

 ListBoxItem lbitem = new ListBoxItem(); 
     ProgressBar pb1 = new ProgressBar(); 
     pb1.Width = 100; 
     pb1.Height = 20; 

     lbitem.Content = "Downloading file - " + pb1; 

     listbox1.Items.Add(lbitem); 

をしかし、多分これはあなたに私が実際に何をしようとしているアイデアを与えます。私は、誰かがこれで私を助けることを願って

に関して、

ジェイク

答えて

0

私はC#自分自身にかなり新しいので、私は完全な/正しい答えを持っていないかもしれませんが、ここに私が似たような状況でしたことがあります。あなたはプログレスバーを使用している場合

はまず、あなたはあなたがそうあなたは、最大値がどうなるかプログレスバーを伝えることができますロードしている項目の合計数を知っておく必要があります。 次に、リストボックスにデータをロードし、進行状況バーの数を増やすためのループを設定します。

ループに関するいくつかの単語:
プログレスバーの数が設定した最大値を超えると、実行時エラーが発生します。
あなたがリストボックスにアイテムのLOTをロードしている場合、あなたは本当に何千ものとリストボックスを持つべきではない(むしろそれごとに10、20、50、100個のアイテムを行い、プログレスバーごとに単一の時間を更新しませんとにかく、それはかなり非効率的です)。
あなたがタイトループにしている場合、ユーザーがアクションでプログレスバーを見ることができるように、画面表示を更新する必要があるかもしれません。

<ListBox ...> 
    <ListBox.ItemTemplate> 
     <DataTemplate> 
      <StackPanel Orientation="Horizontal"> 
       <TextBlock Text="Downloading file - " VerticalAlignment="Center"/> 
       <ContentPresenter Content="{Binding }"/> 
      </StackPanel> 
     </DataTemplate> 
    </ListBox.ItemTemplate> 
.... 
</ListBox> 

A:ListBoxコントロールのインスタンスで、XAMLで

... 
lbitem.Content = pb1; 
... 

:あなたのコードで

pb1.Maximum = maxNumberItemsToLoad; 
for (int i==0; i<maxNumberItemsToLoad; i++) 
{ 
    lbItem = "String to add to Listbox"; //Read/Get your data to put into listbox here 
    listbox1.Items.Add(lbItem); 
    pb1.Increment(1); 
    //May need to do a this.Refresh(); here if pb1 does not update 
} 
+0

あなたは間違っていると思います。私は追加されたすべての項目でプログレスバーを塗りつぶしたくありません。これは次のようなログです:http://s7.directupload.net/images/120503/9vx8zjc4。png これはxamlで簡単にできましたが、私のコードビハインドでlistboxitemをどのように追加できるかを知る必要があります。 – JakeFrost77

+0

私は自分自身で解決策を見つけました。私はちょうどコンテナを使用し、私の場合はStackPanelを必要とし、プログレスバーを追加する必要がありました。それから私は私のアイテムにStackPanelを追加し、リストボックスに追加することができます。完璧な作品 – JakeFrost77

0

:ここ

は少しサンプル "空気コード" ですより良い方法は、各項目の進行状況(すなわち進行状況バーの値)を保持するリストと、 ProgressBar DataTemplateの一部です。

0

方が良いProgressBarを追加するためにListViewを使用すると思います。

これをご覧ください:A much easier to use ListView

関連する問題