2011-09-27 4 views
1

Silverlight 페이지 (텍스트 상자, 날짜 표시기 ...)의 여러 컨트롤에 일부 값을 추가하려고하지만 일부 값이 수동으로 설정 될 때까지 초기화되지 않는 것처럼 보입니다.Silverlight가 컨트롤을 초기화하지 않습니다.

페이지의 코드에서 "로드 됨"이벤트가 발생했지만 작동하지 않습니다. (초기화 된 순서로 생각했습니다).

나는이 실버 제한 중 하나라고 읽을 수 있지만 아마도 ...

어떤 생각 어떤 해결 방법은 한 ?? 미리 감사드립니다. (

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"를 실행하려고

는 이러한 텍스트 상자가 null입니다

<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" /> 

을 그리고 이것은 뒤에 내 콘데입니다 :

일부 코드 것은 먼저 XAML 컨트롤, 그것을 설명하기 하지만 그들은 페이지에서 완벽하게 작동하고 있습니다 ...). 분명히 사용자가 텍스트를 입력 할 때 초기화됩니다.

+0

일부 코드를 게시하십시오 – swinefeaster

+1

이것은별로 의미가 없습니다. 어디에서'DataContext'를 설정할 것입니까? 왜 당신은'UpdateSource'를 강요하겠습니까? 상자에서 데이터가 변경되지 않았 으면 해당 코드를 제거하십시오. – AnthonyWJones

+0

DataContext는 부모 페이지에서 설정되며 (사실 컨트롤입니다) 완벽하게 상속됩니다. 그 UpdateSource는 사용자가 폼을 편집하게하기 전에 "validation"을 강제합니다. (중재자와 컨트롤을 통해 메시지를 시도했는데 컨트롤도 null입니다) ... – zapico

답변

0

내부에 많은 컨트롤이있는 "ContentPresenter"를 삭제하여 해결되었습니다.

0

아마도 DataContext이 설정되어 있지 않거나 설정하려고하는 대상으로 설정되어 있지 않을 것입니다. 디버깅 할 때 VS에서 출력 창을 확인하십시오. 바인딩에 대한 불만 사항이 있습니까?

+0

DataContext가 상위 페이지에 설정되었습니다. 사실에 대한 통제입니다.) 완벽하게 계승되었습니다. 나는 사용자가 폼을 편집하게하기 전에 "Validation"을 강제하기 위해 그 UpdateSource를 만든다. (나는 중재자와 컨트롤을 가진 메시지를 통해 그것을 시도했다. – zapico

관련 문제