Rem*_*tec 3 .net c# data-binding wpf xaml
出于某种原因,我无法ListBox从我的CollectionViewSource. 这是代码...
public class AppTest
{
public int Priority { get; set; }
public string TestName { get; set; }
}
public class AppTestProvider
{
public List<AppTest> GetAppTests()
{
return new List<AppTest>()
{
new AppTest() { Priority=1, TestName = "Application Setup" },
new AppTest() { Priority=2, TestName = "File System Permissions" }
};
}
}
Run Code Online (Sandbox Code Playgroud)
......现在Xaml......
<Window.Resources>
<ObjectDataProvider x:Key="AppTests" ObjectType="{x:Type Application:AppTestProvider}" MethodName="GetAppTests" />
<CollectionViewSource x:Key="cvs" Source="{Binding AppTests}">
<CollectionViewSource.SortDescriptions>
<scm:SortDescription PropertyName="Priority" Direction="Ascending" />
</CollectionViewSource.SortDescriptions>
</CollectionViewSource>
</Window.Resources>
<Grid>
<ListBox x:Name="TestList" ItemsSource="{Binding Source={StaticResource cvs}}">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding TestName}" />
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</Grid>
Run Code Online (Sandbox Code Playgroud)
如果我改变ItemsSource的ListBox,看起来像这样(得到从数据ObjectDataSource并没有在CVS),它显示的数据虽然没有排序...
<ListBox x:Name="TestList" ItemsSource="{Binding Source={StaticResource AppTests}}">
Run Code Online (Sandbox Code Playgroud)
我相信这一定是非常简单的事情。我似乎无法让它工作!
替换这个 <CollectionViewSource x:Key="cvs" Source="{Binding AppTests}">
与<CollectionViewSource x:Key="cvs" Source="{StaticResource AppTests}">.
您是referring to resource在 XAML中定义的,因此您需要使用StaticResource而不是Binding引用,ObjectDataProvider就像您在稍后的方法中设置 listBox 的 ItemsSource 一样。
| 归档时间: |
|
| 查看次数: |
4291 次 |
| 最近记录: |