2010-12-22 56 views
3

我定义我在XAML模板中的RelativeSource,与如何正确绑定WPF中的datacontext RelativeSource?

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

我得到一个异常

型‘System.Windows.Markup.XamlParseException’的“第一次机会异常出现在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 2010-12-22 13:44:08

+0

当然,这里是我在xaml的信息: – Drew 2010-12-22 13:51:12

回答

3

如何在您的窗口的直接孩子上设置DataContext?例如

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

请问这是否适合您?