作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
好吧,我不是编程或 C# 方面的新手,我似乎无法直接理解 WPF 的数据绑定(bind)。我的同事们对此赞不绝口(是的,我也会问他们)但现在我被难住了。
这是我想为初学者做的事情:
例如,我有一个事物的列表,如下所示:
List<Thing> thingList = Source.getList();
现在通常我会去
foreach(Thing t in thingList)
{
//add thing to combobox
}
但据我所知,我可以以某种方式不这样做,而是使用数据绑定(bind)为我填充组合框。
我似乎无法得到的是我把“thingList”放在哪里?我是否将其作为某个地方的单独属性(property)?我将该属性放在哪里?
我现在觉得很愚蠢,因为我已经为此苦苦挣扎了一段时间,但我找不到任何例子可以让我理解这个 - 可能非常简单 - 的概念。
有人愿意帮助我或指出我可能错过的一些分步指南吗?
最佳答案
使用 ObservableCollection<T>
用于 WPF 中的数据绑定(bind)。 T 是你的类(class)。请参见下面的示例
public class NameList : ObservableCollection<PersonName>
{
public NameList() : base()
{
Add(new PersonName("A", "E"));
Add(new PersonName("B", "F"));
Add(new PersonName("C", "G"));
Add(new PersonName("D", "H"));
}
}
public class PersonName
{
private string firstName;
private string lastName;
public PersonName(string first, string last)
{
this.firstName = first;
this.lastName = last;
}
public string FirstName
{
get { return firstName; }
set { firstName = value; }
}
public string LastName
{
get { return lastName; }
set { lastName = value; }
}
}
现在在 XAML 中。转到资源标签
<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:c="clr-namespace:SDKSample"
x:Class="Sample.Window1"
Width="400"
Height="280"
Title="MultiBinding Sample">
<Window.Resources>
<c:NameList x:Key="NameListData"/>
</Window.Resources>
<ListBox Width="200"
ItemsSource="{Binding Source={StaticResource NameListData}}" // Name list data is declared in resource
ItemTemplate="{StaticResource NameItemTemplate}"
IsSynchronizedWithCurrentItem="True"/>
xmnls:c
将为您提供选择类(class)的选项。在这里你可以选择 c,d,e x 任何东西,但要确保它应该早点使用
关于c# - 似乎无法在我的脑海中获得 WPF DataBinding,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5382724/
我是一名优秀的程序员,十分优秀!