【发布时间】:2019-09-28 16:32:56
【问题描述】:
我正在尝试使用 MultiBinding 将滑块绑定到文本框(有效)并将文本框绑定到属性(无效)。 TextBox/Property 绑定适用于单一绑定,但当我引入 MultiBinding 时,它会中断。
这是我的 XAML
<Slider
Name="SliderExportQuality"
Value="100"
Minimum="0"
Maximum="100"
HorizontalAlignment="Left"
Margin="10,5,0,0"
VerticalAlignment="Top"
Width="239"/>
<TextBox>
<TextBox.Text>
<MultiBinding StringFormat="N2">
<Binding ElementName="SliderExportQuality" Path="Value"/>
<Binding Path="ExportQuality" UpdateSourceTrigger="PropertyChanged"/>
</MultiBinding>
</TextBox.Text>
</TextBox>
这是对话框。在我尝试直接向其中输入值后,TextBox 被红色修剪,这告诉我有什么问题?
我阅读了一些关于 MultiBinding 的内容,并认为我的转换器可能会出错,但对它应该是什么一无所知。
【问题讨论】:
-
你好像没有转换器。 MultiBinding 在那里做什么?你想用
ExportQuality属性做什么? -
我认为您误解了 MultiBindings 的目的是什么以及它们是如何工作的。我建议您不要在此处尝试 MultiBinding,而是让您的 Textbox.Text 属性仅与 ExportQuality 绑定。你让 Slider.Value 也绑定到 ExportQuality。 (本质上,Slider 和 TextBox 都是 UI 元素,它们表示并允许更改 ExportQuality,因此让两者都绑定 ExportQuality 是很自然的)
-
我不明白你为什么需要多重绑定
-
多重绑定旨在将来自多个来源(绑定)的值提供给属性。如果您不通过多转换器提供翻译逻辑,则需要使用诸如 stringformat 之类的标记扩展来告诉它如何处理这些值。也许这就是您的意图,或者您完全误解了多重绑定。 c-sharpcorner.com/UploadFile/91c28d/…
标签: wpf multibinding