2010-07-05 47 views
0

得到的DataContext我有:如何從StackPanel的

<StackPanel DataContext="{Binding Path =MyContext}"> 
    <TextBox Text="{Binding Path =Content}" x:Name="tbName" IsReadOnly="False"> 
    </TextBox> 
    <CheckBox x:Name="cboxName" Content="Is null ?" Click="cboxName_Click" IsChecked="{Binding Path=THIS, Converter={StaticResource MyContextToBoolConverter}}"> 
    </CheckBox> 
</StackPanel> 

public class MyContextToBoolConverter: IValueConverter 
{ 
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture) 
    { 
     return (value!=null); 
    } 

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) 
    { 
      return parameter; 
    } 
} 

我只是想從DataContext到StackPanel的複選框。

+0

你可以複製你要綁定的DataContext的視圖模型的源代碼。 – Ragunathan 2010-07-05 09:39:02

+0

爲什麼?我只想檢查對象是否存在? – user278618 2010-07-05 09:42:18

回答

1

或者試試這個 -

<StackPanel x:Name="StackPanel" DataContext="{Binding Path =MyContext}"> 
    <TextBox Text="{Binding Path =Content}" x:Name="tbName" IsReadOnly="False" /> 
    <CheckBox x:Name="cboxName" Content="Is null ?" 
     Click="cboxName_Click" 
     IsChecked="{Binding ElementName=StackPanel, Path=DataContext, Converter={StaticResource MyContextToBoolConverter}}"> 
    </CheckBox> 
</StackPanel> 
5

您應該將THIS替換爲.或從Binding中完全刪除Path。這將直接創建與DataContext的綁定。

IsChecked="{Binding Converter={StaticResource MyContextToBoolConverter}}"