2010-12-22 6 views
3

나는 예외WPF에서 datacontext RelativeSource를 올바르게 바인딩하는 방법은 무엇입니까?

에게 형 'System.Windows.Markup.XamlParseException'의 "A 첫 번째 예외를 얻고있다

DataContext="{Binding RelativeSource={RelativeSource Self}}" 

과 함께 XAML에서 내 템플릿에서 RelativeSource를 정의하고이 PresentationFramework 발생 .dll

추가 정보 : 'System.Windows.Markup.StaticResourceHolder'에 값을 제공하면 예외가 발생했습니다. "

나는이 문제를 내가 Window.Resources 선언 다음에 바인딩 할 필요가 있다고 생각하지만 <DataContext 태그를 사용하고 RelativeSource를 사용하는 방법을 잘 모르겠습니다. 감사!

<Window x:Class="SupportDesk.MainWindow" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Title="Top Echelon Support Desk" Height="554" Width="743" xmlns:my="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Input.Toolkit" xmlns:myNewNamespace="clr-namespace:SupportDesk" 
    DataContext="{Binding RelativeSource={RelativeSource Self}}"> 
<Window.Resources> 
    <myNewNamespace:BoolToVisibilityConverter x:Key="boolToVis" /> 

    <Style TargetType="{x:Type TextBlock}" 
    x:Key="GridBlockStyle"> 
     <Setter Property="VerticalAlignment" Value="Center" /> 
     <Setter Property="Visibility" 
Value="{Binding Path=IsSelected, 
    RelativeSource={RelativeSource FindAncestor, 
     AncestorType={x:Type ListViewItem}}, 
    Converter={StaticResource boolToVis}, 
     ConverterParameter=False}" /> 
    </Style> 
</Window.Resources> 
+0

나는 얇은 당신은 더 많은 세부 사항을 제공해야 할 것입니다. 몇 가지 코드 조각을 제공 할 수 있습니까? – ColinE

+0

확실히 여기 xaml에 내 정보가 있습니다. – Drew

+0

흠, 이것을 게시하는 가장 좋은 방법은 무엇입니까? – Drew

답변

3

창의 오른쪽 자식에 DataContext를 설정하는 방법은 어떻습니까? 예 :

<Window> 
    <Grid DataContext="{Binding RelativeSource={RelativeSource Self}}"> 
    </Grid> 
</Window> 

이 기능을 사용할 수 있습니까?

+0

도움을 주셔서 감사합니다. 예외가 사라졌지만 지금은 데이터가 내 목록보기에 반환됩니다. 기본적으로 3 개의 자동 완성 상자가 있고 값을 선택하면 쿼리를 실행하고 결과를 목록보기로 반환합니다. 데이터가 더 이상 반환되지 않습니다 – Drew

+0

디버깅을 수행 할 시간입니다! ... 중단 점을 설정했는데 listview의 DataContext는 무엇입니까? 그리드를 위해서? ... – ColinE

+0

또한 ... 왜 상대 소스 자체 바인딩을 사용하고 있습니까? 일반적으로 이것은 UI 컨트롤에 사용되며 윈도우/폼에는 사용되지 않습니다. – ColinE

관련 문제