Я хотел бы динамически создать слайдер с привязкой его значения к TextBox внутри DockPanel. Когда я пытаюсь это сделать, я не могу привязать значение ползунка к TextBox, а внутри TextBox я получаю следующее сообщение: {Binding ElementName = slValue, Path = Value, UpdateSourceTrigger = PropertyChanged} em > вместо значения ползунка.
Вот код, который я написал до сих пор:
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>
{Binding ...}
- это расширение разметки, которое работает только в XAML, а не в программном коде. См. Как создать привязку в коде. - person Clemens   schedule 24.07.2014