我想動態創建一個Slider,其值綁定到DockPanel內的TextBox。當我嘗試這樣做時,我無法將滑塊值綁定到TextBox,並且在TextBox中,我收到以下消息:{Binding ElementName = slValue,Path = Value,UpdateSourceTrigger = PropertyChanged}而不是Slider的值。綁定滑塊值到文本框
這裏是我到目前爲止已經編寫的代碼:
double minimum = 0.0;
double maximum = 100.0;
double defaultValue = 5.0;
DockPanel item = new DockPanel();
item.VerticalAlignment = VerticalAlignment.Center;
Slider slValue = new Slider()
{
Minimum = minimum,
Maximum = maximum,
TickFrequency = 1.0,
Value = defaultValue,
IsSnapToTickEnabled = true,
Name = "slValue",
Width = 100
};
TextBox slValueTB = new TextBox()
{
Text = "{Binding ElementName=slValue, Path=Value, UpdateSourceTrigger=PropertyChanged}",
TextAlignment = TextAlignment.Right,
Width = 40,
};
item.Children.Add(slValue);
item.Children.Add(slValueTB);
這裏就是我想要動態地重新創建XML代碼:
<DockPanel VerticalAlignment="Center" Margin="10">
<TextBox Text="{Binding ElementName=slValue, Path=Value, UpdateSourceTrigger=PropertyChanged}" DockPanel.Dock="Right" TextAlignment="Right" Width="40" />
<Slider Minimum="0" Maximum="100" TickPlacement="BottomRight" TickFrequency="5" IsSnapToTickEnabled="True" Name="slValue" />
</DockPanel>
'{綁定...}'是一個標記擴展只能在XAML中使用,而不能在代碼中使用。請參見[如何:在代碼中創建綁定](http://msdn.microsoft.com/zh-cn/library/ms742863.aspx)。 – Clemens
我已經嘗試了與上例中相同的方式,但我仍然無法將其值綁定到TextBox。這是我迄今爲止設法做的:綁定myBinding =新的綁定(「ValueChanged」); myBinding.Source = slValue.Value; slValueTB.SetBinding(TextBox.TextProperty,myBinding); – user3154369
如果你想編寫這樣的代碼,你正在做一些根本性的錯誤,即不使用[數據模板](http://msdn.microsoft.com/en-us/library/ms742521.aspx)。 –