Приношу свои извинения, поскольку это достаточно упрощенно. Я знаю, что на вопрос дан ответ, но примерно на 30 страницах мне еще не удалось найти проблему, которую я пытаюсь решить.
Я еще не очень хорошо практиковался в SL и пытался написать простую версию попытки написать TextBox, который привязывается к свойству на экране и обновляет его при изменении Text и наоборот (изменение свойства распространяется на Text). По нескольким причинам мне нужно сделать это с DependencyProperties и в коде, а не с INotifyPropertyChanged и в XAML.
Мои последние попытки выглядят примерно так:
public partial class MainPage : UserControl
{
static MainPage()
{
TargetTextProperty = DependencyProperty.Register("TargetText", typeof(string), typeof(MainPage), new PropertyMetadata(new PropertyChangedCallback(TextChanged)));
}
public readonly static DependencyProperty TargetTextProperty;
public string TargetText
{
get { return (string)GetValue(TargetTextProperty); }
set { SetValue(TargetTextProperty, value); }
}
public MainPage()
{
InitializeComponent();
TargetText = "testing";
textBox1.DataContext = TargetText;
Binding ResetBinding = new Binding("TargetText");
ResetBinding.Mode = BindingMode.TwoWay;
ResetBinding.Source = TargetText;
textBox1.SetBinding(TextBox.TextProperty, ResetBinding);
}
private static void TextChanged(DependencyObject sender, DependencyPropertyChangedEventArgs e)
{
MainPage pg = (MainPage)sender;
pg.textBox1.Text = e.NewValue as string;
}
}
Кто-нибудь видит, что (болезненно очевидная вещь?) Я скучаю?
Спасибо
John