Wpf 绑定列表框';s SelectedItem指向静态类实例中的属性

Wpf 绑定列表框';s SelectedItem指向静态类实例中的属性,wpf,binding,static-classes,Wpf,Binding,Static Classes,我在模板文件中有一个简单的列表框,如下所示: <local:ProcessVisualization x:Key="ProcessVisualization"/> <ListBox Grid.Column="1" Grid.Row="1" ItemsSource="{Binding Source={StaticResource ResourceKey=ProcessVisualization}, Path=Instance.TestListItems}"

我在模板文件中有一个简单的列表框,如下所示:

<local:ProcessVisualization x:Key="ProcessVisualization"/>

<ListBox Grid.Column="1" 
    Grid.Row="1" 
    ItemsSource="{Binding Source={StaticResource ResourceKey=ProcessVisualization}, Path=Instance.TestListItems}" 
    SelectedItem="{Binding Source={StaticResource ResourceKey=ProcessVisualization}, Path=Instance.SelectedTestListItem, Mode=TwoWay}">
</ListBox>

在我的ProcessVisualization类中,我有以下内容:

private ObservableCollection<string> _testListItems;
private string _selectedTestListItem;
private static readonly ProcessVisualization _processVisualization = new ProcessVisualization();

public ObservableCollection<string> TestListItems
{
    get { return _testListItems; }
    set
    {
        _testListItems = value;
        NotifyPropertyChanged("TestListItems");
    }
}

public string SelectedTestListItem
{
    get { return _selectedTestListItem; }
    set
    {
        _selectedTestListItem = value;
        NotifyPropertyChanged("SelectedTestListItem");
    }
}

public static ProcessVisualization Instance
    {
        get { return _processVisualization; }
    }
私有ObservableCollection\u testListItems;
私有字符串\u selectedTestListItem;
私有静态只读ProcessVisualization_ProcessVisualization=新ProcessVisualization();
公共ObservableCollection TestListItems
{
获取{return\u testListItems;}
设置
{
_testListItems=值;
NotifyPropertyChanged(“TestListItems”);
}
}
公共字符串SelectedTestListItem
{
获取{return\u selectedTestListItem;}
设置
{
_selectedTestListItem=值;
NotifyPropertyChanged(“SelectedTestListItem”);
}
}
公共静态进程可视化实例
{
获取{return\u processVisualization;}
}

当我运行将字符串列表分配给TestListItems的方法时,它们会正确地显示在我的listbox中,并且我可以从代码中设置SelectedTestListItem而不会出现问题。但是,如果用户试图从列表框中选择,它似乎不会返回到更新ProcessVisualization类上的my属性。有人知道我做错了什么吗?

这个静态
实例有什么用?
ProcessVisualization
资源已经是该类的实例。你们已经使用它作为绑定源了。好吧,该死的,我拿出了实例,它成功了。最初有人告诉我,您需要绑定到一个静态成员。一定是因为我没有正确理解原始源代码。最初编写此代码的人不在办公室,但当他回来后,我会问他并发布我收集的见解。至少在这里的示例代码中,静态属性没有任何意义。您始终可以访问资源对象,必要时也可以从代码隐藏中访问。