(Windows Phone 7 SDK)こんにちは。CTransactionListという名前のリストボックスがあり、データバインディングを使用してこのリストボックスにいくつかの項目を追加しています。そして、ここにデータバインディングを評価するクラスがあります(コーディングの問題が原因で問題が発生するため、ここではリストボックスのXAMLコードは必要ないと思います)
public class CTransaction
{
public String Date1 { get; set; }
public String Amount1 { get; set; }
public String Type1 { get; set; }
public CTransaction(String date1, String amount1, String type1)
{
this.Date1 = date1;
this.Amount1 = amount1;
switch (type1)
{
case "FR":
this.Type1 = "Images/a.png";
break;
case "TA":
this.Type1 = "Images/b.png";
break;
case "DA":
this.Type1 = "Images/c.png";
break;
}
}
}
ここに関数があります。移動が完了すると、この関数が実行されます(この関数は、関数の実行時に新しいアイテムを追加することになっています)
List<CTransaction> ctransactionList = new List<CTransaction>();//Define my list
public void movecompleted()
{
String DefaultDate = "";
String DefaultAmount = "";
String RandomType = "";
DefaultDate = nameend.Text;
DefaultAmount = diffend.Text;
RandomType = "FR";
ctransactionList.Add(new CTransaction(DefaultDate, DefaultAmount, RandomType));
CTransactionList.ItemsSource = ctransactionList;
}
移動が完了すると、初めて必要な要素がリストに追加されます。しかし、次回のために、それは私のリストに追加されません。古いものはその存在を維持します。次のようにリスト定義を関数に組み込んで、この形式も試しました。
public void movecompleted()
{
List<CTransaction> ctransactionList = new List<CTransaction>(); //List definition in function
String DefaultDate = "";
//...Same
}
そして今回は、現在のアイテムを新しいアイテムに置き換えます。リストの最後に追加しないでください。(どちらの方法でも、リストに1つのアイテムがあり、それ以上はありません)リストに追加するたびにどのようにすればよいですか?私はどこが間違っていますか?
これが私のデバッグレポートです。ctransactionListオブジェクトとCTransactionListListBoxの両方に、debugwatcherでの私の観察によると必要なアイテムがあります。唯一の問題は、CTransactionListオブジェクトから取得したリソースがある場合でも、CTransactionListが適切に更新できないことです。
これが私の関連リストボックスのXAMLコードです。(必要に応じて)
<Grid>
<ListBox Name="CTransactionList" Margin="0,0,0,0" >
<ListBox.ItemTemplate >
<DataTemplate>
<Button Width="400" Height="120" >
<Button.Content >
<StackPanel Orientation="Horizontal" Height="80" Width="400">
<Image Source="{Binding Type1}" Width="80" Height="80"/>
<StackPanel Orientation="Vertical" Height="80">
<StackPanel Orientation="Horizontal" Height="40">
<TextBlock Width="100" FontSize="22" Text="Name:" Height="40"/>
<TextBlock Width="200" FontSize="22" Text="{Binding Date1}" Height="40"/>
</StackPanel>
<StackPanel Orientation="Horizontal" Height="40">
<TextBlock Width="100" FontSize="22" Text="Difficulty:" Height="40"/>
<TextBlock Width="200" FontSize="22" Text="{Binding Amount1}" Height="40"/>
</StackPanel>
</StackPanel>
</StackPanel>
</Button.Content>
</Button>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</Grid>
前もって感謝します。