我对命名空间有很多了解,但仍然面临一个问题/误解。
我想将一个 Listview 绑定(bind)到一个 Observablecollection,它驻留在另一个命名空间的静态类中。它有效,但没有代码我无法成功。我确信有更好的方法可以完全在 XAML 文件中完成此操作。
所以,这是我的 XAML 文件(......的一部分 - 我删除了很多以明确......):
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:ToolBox"
x:Class="ToolBox.MainPage">
<StackLayout>
<ListView x:Name="listToolBox">
<ListView.ItemTemplate>
<DataTemplate>
<TextCell Text="{Binding Name}"
Detail="{Binding CreateDate}"/>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</StackLayout>
我在后面的代码中设置了“listToolBox”的绑定(bind)上下文:
...
using ToolBox.Model;
namespace ToolBox
{
public partial class MainPage : ContentPage
{
public MainPage()
{
InitializeComponent();
listToolBox.ItemsSource = ToolBox.Model.EBis.ToolBoxList;
}
...
它指的是静态类的成员:
namespace ToolBox.Model
{
public static class EBis
{
public static ObservableCollection<cDocuments> ToolBoxList = new ObservableCollection<cDocuments>
{
new cDocuments{ Id = -1, Name = "Pas (encore) de connection aux serveurs ..."}
};
...
我的问题 :
为了删除后面的这行代码,我必须在 XAML 元素中编写哪些绑定(bind)指令
listToolBox.ItemsSource = ToolBox.Model.EBis.ToolBoxList;
为了完整起见,我的“工具箱”APP的结构在这里:
see solution explorer
非常感谢您的建议!
最佳答案
使用 x:Static 标记扩展:
<ListView ItemsSource=“{x:Static local:Model.EBis.ToolBoxList}”>
关于c# - 如何在另一个命名空间的静态类中将 Listview 绑定(bind)到 Observablecollection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53023056/