如何从源属性绑定到一个目标方法

有很多方法可以绑定源方式来指定属性,无论是ValueConverter或ObjectDataProvider的。 但是,如果我想要什么有约束力的影响目标的方法?

考虑下面的例子:

class ListBoxViewModel { public static readonly DependencyProperty CurrentItemProperty = DependencyProperty.Register("CurrentItem", typeof (object), typeof (ListBoxViewModel)); public object CurrentItem { get { return (object) GetValue(CurrentItemProperty); } set { SetValue(CurrentItemProperty, value); } } }

我想物业CURRENTITEM绑定ListBox的的CollectionView。 但是,由于的CollectionView的CURRENTITEM属性是只读的,我无法绑定到它直接。 相反,我必须执行MoveCurrentToPosition功能。 我该怎么办呢?

如果有一种不同的方式来做到这一点 - 如果没有结合的方法,我很乐意听到它太,但是,主要的问题是,如果不是如何结合的方法,在这种情况下,那么一个类似。 如果它是不可能的,什么是最好的选择吗? 例如,想到一个想法是订阅的依赖属性(CURRENTITEM在这种情况下)的更改通知和运行从功能的程序代码。

谢谢!

--------------解决方案-------------

与属性变化的回调中,你则可以手动更新的CollectionView你可以注册你的财产:

public static readonly DependencyProperty CurrentItemProperty =
DependencyProperty.Register
(
"CurrentItem",
typeof(object),
typeof(ListBoxViewModel),
new UIPropertyMetadata(null, CurrentItemChanged)
);
public object CurrentItem
{
get { return (object)GetValue(CurrentItemProperty); }
set { SetValue(CurrentItemProperty, value); }
}

private static void CurrentItemChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
// Update current item logic
}

分类:C# 时间:2012-01-01 人气:0
分享到:

相关文章

  • WPF数据绑定计算值有时分钟,有时小时 2012-02-01

    我有一个WPF窗口,一个文本框,使用标准的WPF数据绑定到一个对象. 这一切工作正常,问题是这样的: 用户输入时间的估计,我想给用户(通过一个下拉列表)进入以小时或分钟数据的选项. 我想保持数据以分钟,并且如果用户选择小时,乘以60它们的输入和存储的数据. 我怎样才能做到这一点与WPF绑定? 这甚至可能吗? 编辑 例如,90分钟就显示为1.5,如果在下拉列表被设定为小时,但90如果选择miutes. --------------解决方案------------- 你可以使用一个特殊的属性你的窗口

  • 登录WPF数据绑定值更改为一个物业 2012-05-27

    我有一个关于WPF数据绑定问题的通知 我有一个复选框是绑定到内部数据模型的布尔属性格式双向的. 我想要的是显示在用户界面中的值更改消息(比方说,"从真正=>假SomeBoolParameter变化"),只要属性更改. 我已经实现了数据模型的INotificationPropertyChanged接口,我知道我可以在XAML中设置SourceUpdated得到通知. 但是,我可以在SourceUpdated事件收到的EventArgs的是DataTransferEventArgs对

  • WPF数据绑定:如何检测一个项目的变化? 2012-07-09

    我有一个WPF数据绑定的一些问题,我希望能在我交代清楚,因为我担心这个问题很微妙. 我基本上是一个WPF用户控件与一群组合框,每一个被链接到对方. 我的意思是,第一组合框填充有一些元件,并且当用户选择和产品中,第二组合框填充有与其它COMBOX基于先前选择的元素,依此类推. 所有的组合框都绑定与UpdateSourceTrigger =引发LostFocus. 对于组合的ItemsSource属性的代码如下所示: private ICollectionView allTicketTypesVie

  • 新的WPF数据绑定 2012-07-26

    我是新来WPF数据绑定,有点卡住. 显然,我的文本框不正确绑定到数据元素我打算,我想不通为什么. 首先在我的MainWindow.xaml文件,我宣布一个对象: <Window.Resources> <local:Aircraft x:Key="Aircraft"/> </Window.Resources> 这将创建期间类型飞机的对象MainWindow.InitializeComponent() (我可以通过将一个断点飞机的构造验证) 班Aircr

  • 似乎无法得到WPF数据绑定在我的脑海 2012-09-18

    好吧,我在编程或C#这样没有新手,我似乎无法得到WPF的数据绑定直在我的头上. 我的同事们正在热烈讨论它(是的,我会要求他们为好),但现在我很为难. 下面是我想对于初学者做什么: 举个例子,我得到了这样的事情的清单: List<Thing> thingList = Source.getList(); 现在通常我会去 foreach(Thing t in thingList) { //add thing to combobox } 但是,从我所知的是,我可以以某种方式无法做到这一点,但使用数据绑

  • 没有办法让事件,当一些WPF数据绑定更新发生? 2012-10-06

    没有办法让事件,当一些WPF数据绑定更新发生? UPD我开发扩展标准控件的一个自定义的控制. 我需要得到通知,当时的祖先控制改变DataContext属性,或者数据绑定祖先控制的任何属性的原因更新. --------------解决方案------------- 这听起来像你需要:INotifyPropertyChanged的要在您的视图模型实现的. 显然,这取决于具体的实现,但是这是假定您遵循MVVM. 这就可以让你进行基于一个绑定属性改变的值一些工作​​(和事件被上升). 如果你在谈论从控制

  • 如何检测损坏的WPF数据绑定? 2013-03-13

    虽然试图回答在附近的"单元测试WPF绑定"的问题,我有以下琐碎的问题.. 什么是找到,如果你有WPF数据绑定线路设置不当(或者你只是打破了正确接线的东西)的最佳方法是什么? 虽然单元测试的方法似乎是像乔尔的"剥去你的手臂删除分裂"..我环顾四周,方便开销少的方式来检测这一点. 每个人似乎都致力于数据与WPF大张旗鼓地结合..它确实有其可取之处. --------------解决方案------------- 在.NET 3.5中它引入了一个新的方式来了解具体的数据绑

  • WPF数据绑定,CollectionViewSource,INotifyPropertyChanged的 2013-04-01

    当我试图做一些事情在WPF第一次,我很困惑与WPF数据绑定. 于是我研究了下一看一遍例如MSDN上:http://msdn.microsoft.com/en-us/library/ms771319(v=VS.90).aspx 现在,我很明白如何使用主从模式的一种形式,需要将数据从一个源(一个表) - 无论是主机和详细的部件. 我的意思是比如我有一个数据网格与网格下面我与当前行的详细数据的几个领域. 但怎么办呢,如果详细的数据来自不同但相关的表? 例如:你有一个表"用户"的列 - '身份

  • WPF数据绑定到泛型列表 2013-05-01

    解决解决SLOVED 泛型列表是结构的列表 如果您使用的是结构的一类,而不是它工作正常 即 public class Person { public string Name { get; set;} public string ID { get; set;} } instead of public struct Person { public string Name; public string ID; } 我做错了什么......你知道是怎么回事. 我曾尝试玩弄的ItemsSource,Dat

  • 一些问题,WPF数据绑定,但你必须猜测什么样的 2013-05-26

    我想实现一个属性更改事件(或曾经是合适的)在我的WPF项目,我试图找到要做到这一点的最好办法. 我有这个头,其中有一个展开/折叠图标,并在我的窗口,我可能有多个标题. 我想,当所有标头中列出的开始,但是当用户展开的一些报头(不是全部)的默认都要塌了,当我点击我的窗户"刷新"来更新头,我希望它留下来的方式它以前是刷新. 因此,如果头1和2的扩大,3和4被压塌,按下刷新按钮时,我想它真正记住这一点. 问题是,当我点击'刷新'它刷新整个视图,它失去的信息. 我想在承载这些头存储的信息,因此,

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.682 (s). 10 q(s)