我是新手,Google这次没有帮助我。我能够遵循一些示例并填充DataGrid并修改数据库,但ListView给了我一个问题。这是我的班级:
public class GlobalDataviews : INotifyPropertyChanged
{
...
//Billable data table
//Populated elsewhere with "SELECT ID, Value FROM BillableTable;"
private DataTable mBillable;
public DataView Billable()
{
return mBillable.DefaultView;
}
}
这是我的XAML片段:
<Window.Resources>
<ObjectDataProvider x:Key="GlobalDataviews" ObjectType="{x:Type local:GlobalDataviews}" />
<ObjectDataProvider x:Key="BillableData" ObjectInstance="{StaticResource GlobalDataviews}" MethodName="Billable" />
</Window.Resources>
现在我的ListView:
<ListBox Name="listBox1" DataContext="{StaticResource BillableData}" SelectedValuePath="ID" DisplayMemberPath="Value"/>
我可能错过了一些非常简单的事情。什么是正确的方法?我还想将选定的值(没有多选)绑定到我的代码中的另一个属性。有人可以帮忙吗?不知道为什么我会这么困惑。
答案 0 :(得分:2)
如果要设置DataContext,则必须将ItemsSource属性设置为绑定数据。
<ListBox x:Name="listBox1" DataContext="{StaticResource BusinessData}" ItemsSource="{Binding}" SelectedValuePath="ID" DisplayMemberPath="Value" />
否则,您可以直接绑定ItemsSource,如下所示:
<ListBox x:Name="listBox1" ItemsSource="{Binding Source={StaticResource BusinessData}}" SelectedValuePath="ID" DisplayMemberPath="Value" />
答案 1 :(得分:1)
您缺少ItemsSource的绑定。
这样的事情:
<ListBox Name="listBox1" DataContext="{StaticResource BusinessData}" ItemsSource="{Binding myCollection}" SelectedValuePath="ID" DisplayMemberPath="Value"/>
myCollection
是展示您的列表的属性。