带静态变量的wpf列表框
我的列表框有问题。如果我想更改列表框中的变量,我会得到一个错误,因为该变量不是静态的。有人能告诉我如何将listBox1变成一个对象吗带静态变量的wpf列表框,wpf,static,listbox,Wpf,Static,Listbox,我的列表框有问题。如果我想更改列表框中的变量,我会得到一个错误,因为该变量不是静态的。有人能告诉我如何将listBox1变成一个对象吗 <ListBox i:Name="listBox1" ItemsSource="{Binding MyItems}" MaxWidth="683" PreviewMouseDown="listView_PreviewMouseDown" IsSynchronizedWithCurrentItem="True" HorizontalAlignment=
<ListBox i:Name="listBox1" ItemsSource="{Binding MyItems}" MaxWidth="683" PreviewMouseDown="listView_PreviewMouseDown" IsSynchronizedWithCurrentItem="True" HorizontalAlignment="Left" Margin="0,452,0,0" Grid.Row="0" VerticalAlignment="Top" Width="Auto" SelectionChanged="listBox1_SelectionChanged" Height="Auto" >
<ListBoxItem>
<TextBlock Text="{Binding listboxwertextra}" />
</ListBoxItem>
</ListBox>
职能:
public static void reloadlistbox ()
{
List<maininformation> items = new List<maininformation>();
items.Add(new maininformation() { listboxwertextra = "hallo" });
listBox1.ItemsSource = items;
}
publicstaticvoidreloadlistbox()
{
列表项=新列表();
添加(新的maininformation(){listboxwertextra=“hallo”});
listBox1.ItemsSource=项目;
}
但为什么不调用另一个类的对象,做任何你想做的事情,如果需要的话检索某种数据,然后更新你的列表框呢
public void ReloadListbox()
{
var yourClass = new YourClass();
listBox1.ItemsSource = yourClass.SendMeData();
}
我得到一个错误,因为变量不是静态的。。。我认为你错了。错误到底说明了什么?有人能告诉我如何将listBox1变成一个对象吗?。。。为何您在这里真正想要实现什么?静态方法不能访问listbox对象。您要执行此操作。listBox1.ItemsSource。。。但是statis没有“this”,在这种情况下去掉static。非静态字段、方法或属性'listbox1'需要对象引用。我想从其他类调用funktion,他总是告诉我“public void reloadlistbox()”应该是该类的staticpass窗口对象,否则您将无法访问其方法。
var obj = new MyClass();
obj.Method(this);
class MyClass()
{
public void Method(Window wind)
{
wind.YourNonStaticMethod();
}
}
public void ReloadListbox()
{
var yourClass = new YourClass();
listBox1.ItemsSource = yourClass.SendMeData();
}