Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# XAML组合框的DataContext不工作_C#_Wpf_Xaml - Fatal编程技术网

C# XAML组合框的DataContext不工作

C# XAML组合框的DataContext不工作,c#,wpf,xaml,C#,Wpf,Xaml,我在XAML中创建了一个WPF组合框: <ComboBox DockPanel.Dock="Top" Background="{DynamicResource Esri_BackgroundPressedBrush}" DataContext="DockpaneData" Foreground="{DynamicResource Esri_TextMenuBrush}"

我在XAML中创建了一个WPF组合框:

        <ComboBox DockPanel.Dock="Top" Background="{DynamicResource Esri_BackgroundPressedBrush}" DataContext="DockpaneData" 
            Foreground="{DynamicResource Esri_TextMenuBrush}" HorizontalAlignment="Stretch" FontSize="14" VerticalAlignment="Center" Margin="5,0,5,0" IsEditable="True" Text="Jump To"
            ItemsSource="{Binding FeatureEditUpdates}">
        </ComboBox>
我看到它认为datacontext是一个字符串,这对我来说没有意义

谢谢大家!

表达式

<ComboBox ... DataContext="DockpaneData"/>

将组合框的DataContext设置为字符串文字“DockpaneData”,您可以在错误消息中看到它

在“对象”“字符串”上找不到属性

正确设置DataContext的一种方法是声明并使用XAML资源:

<Window.Resources>
    <local:DockpaneData x:Key="DockpaneData"/>
</Window.Resources>
...
<ComboBox ... DataContext="{StaticResource DockpaneData}"/>

...

Datacontext是从其父控件继承而来的,因此您不需要设置单个控件的Datacontext。根据例外情况,combox的Datacontext是字符串类型,而不是DockPaneViewModel。为UserControl页而不是窗口页设置它的正确方法是什么?谢谢你是说
而不是
<Window.Resources>
    <local:DockpaneData x:Key="DockpaneData"/>
</Window.Resources>
...
<ComboBox ... DataContext="{StaticResource DockpaneData}"/>