ボタンをクリックすると、リストビューアイテムを更新する必要があります。実行時に見つけて更新するにはどうすればよいですか?実行時にリストビューにアクセスしてアイテムを更新する
更新:特定のListViewアイテムを見つけて、このアイテムのテキストのみを更新する必要があります。
ボタンをクリックすると、リストビューアイテムを更新する必要があります。実行時に見つけて更新するにはどうすればよいですか?実行時にリストビューにアクセスしてアイテムを更新する
更新:特定のListViewアイテムを見つけて、このアイテムのテキストのみを更新する必要があります。
ListViewItemsを手動でリストビューに追加されたとき、あなたはその内容によってそれらを見て、(System.Linqのを使用して)このような新しいコンテンツで置き換えることができます。
object contentToReplace = ...;
object newContent = ...;
ListViewItem item = listView.Items.Cast<ListViewItem>().FirstOrDefault(
lvi => lvi.Content == contentToReplace);
if (item != null)
{
item.Content = newContent;
}
listViewに2つの列があります。 newListViewItemを指定した列に追加するにはどうすればよいですか? –
おそらくコードとXAMLを投稿するべきです。それ以外の場合は、あなたがしていることを推測することは本当に難しいです。 – Clemens
あなたはコマンドを使用することができます。たとえば:今すぐ
namespace WpfApplication1
{
public partial class MainWindow : Window
{
public static readonly ICommand ItemClickCommand = new RoutedCommand("ItemClick", typeof(MainWindow));
public MainWindow()
{
InitializeComponent();
this.CommandBindings.Add(
new CommandBinding(
MainWindow.ItemClickCommand,
this.ExecuteItemClickCommand,
this.CanExecuteItemClickCommand));
}
private void CanExecuteItemClickCommand(object sender, CanExecuteRoutedEventArgs e)
{
e.CanExecute = e.Parameter is ListBoxItem;
}
private void ExecuteItemClickCommand(object sender, ExecutedRoutedEventArgs e)
{
// Here you can access ListBoxItem that holds a clicked button.
ListBoxItem listBoxItem = (ListBoxItem)e.Parameter;
listBoxItem.Content = "...";
}
}
}
、あなたが必要とする唯一のものは、ボタンにItemClickCommandを割り当て、ListBoxItemを対応するCommandParameterをバインドすることです。
XAMLの例:
<Window ...
xmlns:local="clr-namespace:WpfApplication1">
<ListBox>
<ListBoxItem>
<ListBoxItem.Content>
<Button Command="{x:Static local:MainWindow.ItemClickCommand}"
CommandParameter="{Binding RelativeSource={RelativeSource AncestorType=ListBoxItem}}"
Content="Click Me"/>
</ListBoxItem.Content>
<...>
は、あなたのアイテムを作成した方法によって異なります。 ListViewItemsを手動で追加したり、アイテムコレクションにバインドしたりしましたか? – Clemens
私はそれらを手動で追加しました。 –