Tag: 绑定

将MedialElement从视图(xaml)绑定到ViewModel的属性

我正在尝试将MainView.xaml中的medialElement绑定到ViewModel的proprety。 在MainViewModel.cs中我们会发现 #region Media private MediaElement media; public MediaElement Media { get { return media; } set { if (value == media) return; media = value; OnPropertyChanged(“Media”); } } #endregion 我想知道要在MainView.xaml中放入什么来进行绑定。 我知道如果它是一个TextBox,我会写 “ 但是我应该为MediaElement做些什么? 我现在这样做: ` “非常感谢您的回答!! 对不起我的英语不好。 我也是WPF的新手

将OracleParameter与C#TimeSpan一起使用 – Literal不匹配

我进行了广泛的搜索,但我找不到任何关于此的例子。 我有一个类型为TimeSpan的.NET变量,我需要将它放入Oracle DB的IntervalDayToSecond记录中。 参考http://docs.oracle.com/html/B14164_01/featOraCommand.htm此页面,应该可以将TimeSpan对象作为OracleParameter传递,并将其插入到IntervalDayToSecond类型记录中的Oracle DB中。 这是代码: OracleParameter t = new OracleParameter(“PAR_T”, _msg.t); 我以各种方式尝试过,也明确指定了DBType(它不应该是必需的): OracleParameter t = new OracleParameter(“PAR_T”, _msg.t); taxi.OracleDbType = OracleDbType.IntervalDS; 我总是从Oracle得到同样的错误: Devart.Data.Oracle.OracleException:ORA-01861:literal与格式字符串不匹配 我无法理解如何使其发挥作用; 我在这个应用程序中使用了许多参数(类型为String , Integer , Date ),它们都在工作。 在Google上,我找不到使用c# TimeSpan作为参数的某个人的例子。 有没有人试过这个?

WPF – 为基类实现System.ComponentModel.INotifyPropertyChanged

我想为基类上的属性实现System.ComponentModel.INotifyPropertyChanged接口,但我不太清楚如何连接它。 这是我想收到通知的属性的签名: public abstract bool HasChanged(); 我的基类中的代码用于处理更改: public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; private void OnPropertyChanged(String info) { PropertyChangedEventHandler handler = PropertyChanged; if (handler != null) { handler(this, new PropertyChangedEventArgs(info)); } } 如何在基类中处理事件的连接而不必在每个子类中调用OnPropertyChanged()? 谢谢, 桑尼 编辑:好的…所以我认为当HasChanged()的值发生变化时,我应该调用OnPropertyChanged(“HasChanged”) ,但我不确定如何将它导入基类。 有任何想法吗?

Winforms绑定到ListBox

我有一个带有ListBox的Windows窗体。 表单有这种方法 public void SetBinding(BindingList _messages) { BindingList toBind = new BindingList( _messages ); lbMessages.DataSource = toBind; } 在其他地方,我有一个名为Manager的类具有此属性 public BindingList Messages { get; private set; } 并在其构造函数中的这一行 Messages = new BindingList(); 最后,我有我的启动程序,实例化表单和管理器,然后调用 form.SetBinding(manager.Messages); 我还需要做什么,以便管理器中的声明如下: Messages.Add(“blah blah blah…”); 将导致一行添加到窗体的ListBox中并立即显示? 我根本不需要这样做。 我只是希望我的Manager类能够在它完成工作时发布到表单。

ListViewItem与CheckBox IsChecked绑定到ViewModel

我有一个带有DataTemplate的ListView,用于为每个ListViewItem显示一个Checkbox。 ItemsSource(“TableNames”)在ViewModel中被解除,如下所示: private ObservableCollection _TableNames = new ObservableCollection(); public ObservableCollection TableNames { get { return _TableNames; } set { _TableNames = value; OnPropertyChanged(“TableNames”); } } public class Item { public bool IsSelected { get; set; } public string Name { get; set; } public override string ToString() { return this.Name; } } 如何将Checkbox中的IsChecked绑定到Item.IsSelected属性? 我的代码不起作用。

WPF自定义DatagridColumn绑定问题

我正在尝试为我可以在我的应用程序中重用的数据网格定义一个新的列模板,但是当我尝试使用它时,我得到: System.Windows.Data错误:2:找不到目标元素的管理FrameworkElement或FrameworkContentElement。 BindingExpression:路径= CanLogin; 的DataItem = NULL; target元素是’DataGridBetterCheckBoxColumn’(HashCode = 56040243); target属性是’isChecked’(类型’对象’) XAML for Column: 代码背后: using System.Windows; using System.Windows.Controls; namespace BACSFileGenerator.UserControls { public partial class DataGridBetterCheckBoxColumn : DataGridTemplateColumn { public object isChecked { get { return (object)GetValue(isCheckedProperty); } set { SetValue(isCheckedProperty, value); } } public static readonly DependencyProperty isCheckedProperty = DependencyProperty.Register(“isChecked”, typeof(object), typeof(DataGridBetterCheckBoxColumn), new PropertyMetadata(null)); […]

如何自动在自定义控件内创建绑定?

我有自定义工具栏控件与DependencyProperty IsBusy 这是我如何使用它: 按照惯例,我的所有VM都inheritance自基本VM并具有IsBusy属性。 所以,我知道这个属性将始终在VM上可用。 现在我还有另外4个属性。 我想知道如何在控件的代码中自动绑定到这个IsBusy而不是在XAML中绑定XAML,而不是将它们添加到XAML中。 编辑 实际上,我找到了我的问题的答案: Silverlight:以编程方式绑定控件属性 现在,我的问题是: 在这样的构造函数中应用此绑定是否正确? public myToolbar() { this.DefaultStyleKey = typeof(myToolbar); var binding = new Binding(“IsBusy”) { Mode = BindingMode.TwoWay }; this.SetBinding(IsBusyProperty, binding); } 我应该检查此属性是否存在XAML绑定(另一个绑定)而不绑定? 无论哪种方式都有效,但我想知道它是否对性能,气味等有害? 怎么样在onApplyTemplate这样做。 这是更好的方式吗? if (GetBindingExpression(IsBusyProperty) == null) { var binding = new Binding(“IsBusy”) { Mode = BindingMode.TwoWay }; this.SetBinding(IsBusyProperty, binding); }

WPF用户控件内的绑定

为了进入WPF世界并习惯绑定,我创建了一个用户控件来定义搜索filter。 根据所需的filter,用户可以输入文本,选择日期或选择combobox中的项目。 这是一个包含已创建搜索控件的三个实例的示例,每个实例的类型不同: 好消息是,一切正常,但我不确定是否一切都按预期完成。 SearchUserControl.xaml: SearchUserControl.xaml.cs: using System; using System.Collections.Generic; using System.ComponentModel; using System.Windows; using Zefix.DataAccess; namespace Zefix.View.UserControls { /// /// Interaction logic for SearchUserControl.xaml /// public partial class SearchUserControl { #region Public Dependency Properties /// /// The search value property /// public static readonly DependencyProperty SearchValueProperty = DependencyProperty.Register(“SearchValue”, typeof (object), typeof (SearchUserControl)); /// /// […]

使用ItemsSource和ItemTemplate的WPF ListBox

当我在WPF ListBox同时拥有ItemsSource和ItemTemplate时,我对如何解析绑定感到困惑。 我有一个名为ListOfIndexes的ObservableCollection 。 对于每个索引,我想在数据库表中查找其记录。 我希望在IndexToObjectDescriptionConverter这样做。 但转换器中的断点告诉我, ItemTemplate绑定读取的值是窗口本身 – 即ItemsSource和ItemsTemplate的DataContext是相同的。 请原谅一点坦率,但这似乎是DUMB。 ItemTemplate的整个点是渲染ItemsSource每个元素,所以我想我认为ItemTemplate的DataContext将是正在渲染的单个元素。 那就是说,我怎么告诉ItemTemplate它应该担心ItemsSource表示的各个元素而不是使用整个窗口的DataContext ?

WPF – 在XAML中绑定到后面的代码中创建的对象

可以在代码中创建的对象(即C#)用于XAML中的绑定吗? 例如: public class MyForm { private MyComplexObject complexObject; public MyForm() { InitializeComponent(); } public OnButtonClick(object sender, RoutedEventArgs e) { complexObject = new MyComplexObject(); } } 在单击按钮之前,不会创建complexObject 。 但是一旦单击该按钮,我希望有一个文本框绑定到complexObject.ID开始显示Id。 如果可能的话,我想在XAML中这样做。 可以这样做吗? 如果是这样,怎么样?