Silverlight没有初始化控件

我试图在我的Silverlight页面(textboxes,datepickers ...)中的几个控件中添加一些值,但似乎其中一些从未初始化(直到用户手动设置任何值)。

我试图通过在页面的代码后面订阅“Loaded”事件,但它不起作用......(我认为这是因为它被初始化的顺序)。

我读过这是Silverlight限制之一,但也许有任何解决方法...

任何想法?? 提前致谢。

一些代码来说明它,首先是xaml控件:

<sdk:Label Target="{Binding ElementName=txtNumeroColegiado}" Content="Nº Colegiado" HorizontalAlignment="Right" Margin="5,0" Name="label2" VerticalAlignment="Center" />
<TextBox Margin="5,0" Name="txtNumeroColegiado" TabIndex="27" Text="{Binding Medico.colegiado, Mode=TwoWay, ValidatesOnExceptions=True, NotifyOnValidationError=True, ValidatesOnDataErrors=True}" VerticalAlignment="Center" Grid.Column="1" />

<sdk:Label Target="{Binding ElementName=txtNombreComercial}" Content="Nombre Comercial" HorizontalAlignment="Left" Margin="5,0" Name="label4" VerticalAlignment="Center" Grid.Column="2" />
<TextBox Margin="5,0" Name="txtNombreComercial" TabIndex="27" Text="{Binding Medico.nombrecomercial, Mode=TwoWay, ValidatesOnExceptions=True, NotifyOnValidationError=True, ValidatesOnDataErrors=True}" VerticalAlignment="Center" Grid.Column="3" />

这是我的背后:

public DatosMedico()
{
    InitializeComponent();
    this.Loaded += new RoutedEventHandler(DatosMedico_Loaded);
}

void DatosMedico_Loaded(object sender, RoutedEventArgs e)
{
     this.txtNombreComercial.GetBindingExpression(TextBox.TextProperty).UpdateSource();
     this.txtNumeroColegiado.GetBindingExpression(TextBox.TextProperty).UpdateSource();
}

当它试图运行“updateSource”时,这些文本框是空的(但它们在页面中完美工作......)。 显然,当用户输入一些文本时它们被初始化...


猜测, DataContext要么没有被设置,要么没有被设置为你期待它设置的对象。 在调试时检查VS中的输出窗口,你是否看到有关绑定的任何抱怨?


它通过删除一个内部有很多控件的“ContentPresenter”来解决。

链接地址: http://www.djcxy.com/p/22791.html

上一篇: Silverlight not initializing controls

下一篇: Silverlight Concurrent Data Sources for a Grid's Control