WPF,绑定问题:如何绑定动态资源里面的基本数据类型变量?

先看我的资源定义:
<sys:Double x:Key="D1">0.5</sys:Double>

再看绑定:
<TextBox Text="{Binding ElementName=slider1,Path=Value}"></TextBox>

关键是这个Path,我写对了没有?从运行结果来看没有起作用。如果绑定的是其他对象,path是属性,但是绑定的是一个double类型变量,那path应该怎么写?
现在下面的代码才能实现同步变化的功能,但是如何只用xaml的绑定做到?
private void Slider_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
this.Resources["D1"] = slider1.Value;
}
Value="{Binding ElementName=D1,Path=DoubleField, Mode=TwoWay}" ValueChanged="Slider_ValueChanged"></Slider>

上面我的代码贴错了一点,这个才是绑定代码。

这样是不行的,你应该是想通过滑动条滚动然后更改资源里的值,再反应到文本框中。

原因就出在Resources这个字典上,

为什么ObservableCollection这样的集合中的对象反生更改,可以得到通知? 因为ObservableCollection本身提供了通知的能力他继承了INotifyPropertyChanged接口,但是Resources是没有的, 另外对象本身也要支持INotifyPropertyChanged才行,你这里是slider1,这点是没有问题的。
温馨提示:内容为网友见解,仅供参考
无其他回答

WPF多语言支持:简单灵活的动态切换,让你的程序支持多国语言
步骤 3: 使用资源字典和数据绑定 在XAML中,使用Binding绑定控件内容或文本到资源字典的键。例如,将窗体标题绑定到资源文件中的WindowsTitleKey。步骤 4: 设置初始语言 在App.xaml.cs的OnStartup方法中,设置LanguageManager的CurrentLanguage属性以选择启动时的语言。步骤 5: 实现语言切换 提供用户切换语言...

wpf里如何动态改变一个按钮模板里边的静态资源
可以找到模板下面的控件喔,当然也可以修改其属性。给个demo给你 前台:<Grid> <Button Name="btn" Width="80" Height="30"> <Button.Resources> <SolidColorBrush x:Key="redbrush" Color="Red"\/> <SolidColorBrush x:Key="greenbrush" Color="Green"\/> <\/Button.Resources> <Button.Templat...

WPF 动态添加控件与设置控件模版
后台先创建好listbox,然后赋值 expander1.Content=listbox;问题二:如何后台指定控件模板。你后台创建一个listbox。 那就可以像一般属性一样赋给它的控件模板呀。listbox.ItemTemplate = Resources["lbItemTemp"] as DataTemplate;

WPF编程目录
在第1章“你好,WPF”中,我们将探讨WPF的基本概念,从XAML浏览器应用程序、内容模型到布局、控件、数据绑定和控件模板等关键元素。您将学习如何使用XAML命名空间映射语法,以及如何创建和管理资源。此外,我们将介绍动画和风格,以增强界面的视觉效果。第2章“application及其设置”将深入探讨应用程序的生命周...

C# WPF TabControl控件用法详解
在上一节中,我们已经介绍了TabControl的基本用法,包括左右翻页、页面筛选和数据绑定。本节将继续扩展讲解TabControl的页面删除、增加功能以及相关的事件处理。在TabControl中,我们可以通过绑定事件来实现对页面的动态管理。具体来说,包括TabAdding(页面添加前触发)、TabRemoved(页面移除完成触发)、Tab...

怎么wpf中用数据触发器,动态的改变ListView中的背景颜色
wpf和silverlight一样,在数据绑定的时候提供了前台显示转换机制——Converter。比如你一个textblock显示一个int值,当值>0显示绿色;小于0显示红色。那么你创建一个Converter类做下数据转换的处理(网上有很多实例及相关教程)前台就是这样使用:<textblock text={ binding 内容属性} foreGround = {binding ...

【C# .NET】WPF (一) XAML语言
在XAML中引用静态或动态对象实例,或创建带有参数的类,需要使用XAML的标记扩展。标记扩展分为两大类:WPF标记扩展和XAML标记扩展。例如,StaticResourceExtension用于静态资源绑定,DynamicResourceExtension用于动态资源绑定,而Binding则用于数据绑定。通过使用这些扩展,我们可以实现更为复杂的功能,例如在运行时动态...

(急)wpf listview绑定数据源对象 与数据源更新同步
xmlns:lx="clr-namespace:WpfApplication2"> <!-- 上 2 行中的 xmlns:lx 根据你自己的情形改变 --> <Window.Resources> <lx:MyFileInfo x:Key="mi"\/> <!-- 集合资源,你也可以在代码中动态构造 --> <\/Window.Resources> <StackPanel x:Name="LayoutRoot"> <ListView IsSynchronized...

深入浅出WPF
路由事件机制降低事件订阅的耦合度,使用 RoutedEventArgs 描述事件消息。依赖属性允许属性值自动从数据源获取。ControlTemplate 和 DataTemplate 分别用于控件和数据的外观定义。资源字典用于定义和管理资源,包含静态和动态资源。使用 pack uri 访问资源文件。WPF 中的模板和样式提供控件外观和行为的灵活定制。绘...

求wpf代码,鼠标移上列表某列单元格时,用tooltips展示与该单元格数据相关...
在第一种方法的MouseMove事件里获取datacontext。然后根据这个datacontext(其实就是实体对象)的id或者其他什么值,去动态刷新全局的List<>。然后再把这个list<>绑定到tooltips里。第一种方法是写死的(tooltip展示的list数据都事先加载好),第二种方法是动态的,比较省资源。

相似回答