내 데이터 바인딩이 올바로 작동하도록 노력하고 있습니다. 나는 내가 성취하려고 노력하는 것이 끝날 수 없다고 믿을만한 이유가 있지만, 나는 우리가 얻는 답을 보게 될 것이다.Silverlight의 DataContext, DataBinding 및 Element Binding
저는 UserControl이 있습니다. 이 UserControl에는 하나 이상의 단추가 포함되어 있습니다. 이제 코드 뒤에 IsBookmarked라는 속성 이름이 있습니다. IsBookmarked가 설정되면 버튼 모양에 애니메이션을 적용하는 코드가 실행됩니다. 아이디어는 버튼을 클릭하면 시각적으로 변경된다는 것입니다. 이 UserControl을 Bookmark 컨트롤이라고 부릅니다.
이제 FormControl이라고하는 다른 컨트롤이 있습니다. 내 FormControl에는 자식 책갈피 컨트롤이 포함되어 있습니다. 내 북마크 컨트롤에서 데이터 바인딩을 시도했지만 작동하지 않습니다. 여기에 도움이되는 몇 가지 코드가 있습니다.
이것은 내 컨트롤의 XAML 및 Loaded 이벤트 처리기입니다. 보시다시피 맞춤 컨트롤 (책갈피) 인 하위 요소가 포함되어 있습니다. 따라서이 컨트롤이로드되면 DataContext는 Employee 객체의 새 인스턴스로 설정됩니다. Silverlight는 또한 내 자식 책갈피 컨트롤의 DataContext 속성을 동일한 인스턴스로 설정합니다. 디버깅을 통해이를 확인했습니다. 부모가 유효한 DataContext를 설정했다면 왜 내 자식 컨트롤 (책갈피) 속성에서 데이터 바인딩을 할 수 없습니까?
<UserControl ......>
<q:Bookmark x:Name="BookMarkControl1" IsBookmarked="{Binding IsSiteBookmarked}" />
</UserControl>
public void Control_Loaded(object sender, EventArgs e)
{
DataContext = new Employee { IsSiteBookmarked = True };
}
다음은 내 사용자 정의 컨트롤입니다. 분명히 이것보다 더 많은 것을 포함하고 있지만 가독성을 위해 나는 데이터 바인딩하려고하는 속성으로 트리밍했습니다. UPDATE
//this is the bookmark control. I've included this control within another control, and I'm trying to databind to properties within my parents DataContext
public partial class Bookmark : UserControl
{
bool _IsBookmarked= false;
public bool IsBookmarked
{
get {return _IsBookmarked;}
set {
_IsBookmarked= value;
SwitchMode(value);
}
}
}
내가 언급 할 몇 가지 자바 스크립트 오류를 얻었다. 방화범 정보는 AG_E_PARSER_BAD_PROPERTY_VALUE 예외를보고합니다. 데이터 바인딩이 아직 작동하지 않는 것 같습니다.
'IsBookmarked'는 의존성 속성으로 구현 되었습니까? 또한 코드가 다소 혼란 스럽습니다. Xaml이'IsBookmarked' 속성에 할당하고있는'IsSiteBoolmarked' 속성을 가진'Bookmark '이라는 부분 클래스를 보여줍니다. 'IsSiteBookmarked' 속성은 실제로'Employee'라는 클래스의 속성으로 보입니다. 나는이 질문을 정리하고 좀 더 자세하게 설명 할 필요가 있다고 생각한다. – AnthonyWJones
추가 정보. 희망이 도움이됩니다. – Matt