Fro*_*840 3 .net vb.net data-binding wpf xaml
我最近接手了一个MVVM项目,该项目由一个现在离开公司的人开始; 这是我第一次使用WPF,但从它的外观来看,这是他第一次同时使用WPF和OOP ......
无论如何,我在XAML中有一个ListView,而且我有一个目前不包含"SelectedItem"属性的集合类.
有人可以告诉我我需要输入什么代码来将ListView的SelectedItem链接到我的集合的尚未写入的SelectedItem属性,然后我需要放入什么代码以便集合的SelectedItem链接回ListView?
对于家庭作业级别的问题抱歉,但我正在使用的代码是一个噩梦,我还无法解决"如何编写WPF?" 与此同时"如何将这种编码恐怖重写为OOP?" 所以,如果有人可以提供一些示例代码,我可以将其插入到噩梦......
您可以使用WPF绑定来执行任务.对不起,代码将在C#中,但它应该不难理解并适应VB.NET;):
在Xaml中,您的绑定必须使用TwoWay模式,因为您希望任何UI更新都反映在viewmodel上.
<ListView SelectedItem="{Binding SelectedItem, Mode=TwoWay}" ItemsSource="{Binding MyObjects}"/>
Run Code Online (Sandbox Code Playgroud)
您的ViewModel需要实现INotifyPropertyChanged,以便在ViewModel上通知WPF绑定系统属性更改.
public class MyViewModel: INotifyPropertyChanged
{
private MyObj selectedItem;
public MyObj SelectedItem
{
get{return this.selectedItem;}
set
{
if(value!=selectedItem)
{
selectedItem = value;
RaisePropertyChanged("SelectedItem");
}
[... your collection....]
public event PropertyChangedEventHandler PropertyChanged;
public void RaisePropertyChanged(string propertyName)
{
var propertyChanged = this.PropertyChanged;
if(propertyChanged!=null)
propertyChanged(new PropertyChangedEventArgs(propertyName));
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3680 次 |
最近记录: |