相关疑难解决方法(0)

WPF错误40 BindingExpression路径错误:'对象'上找不到属性

我正在敲打我的桌面上的这个绑定错误..我检查了几个BindingExpression路径错误的帖子,看不到任何与我的情况有关的东西.

无论如何,我有一个名为的自定义控件IncrementingTextBox.我试图在用户'检查' CheckBox上面的时候禁用它.

我对该CheckBox IsChecked属性的绑定工作正常,并在它应该发射时触发.它正在UseSensorLengthConfigurationModel上正确设置属性.

但是,对IncrementingTextBox IsEnabled属性的绑定导致BindingExpression路径错误,因此根本不更新.

作为测试,我尝试在后面的代码启用和禁用控件,它工作得很好,但我似乎无法让Binding工作.

这是我的xaml的一个片段:

...

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

...
...

<CheckBox Content="Use Sensor Length" Margin="30,6,0,0" 
          IsChecked="{Binding ConfigurationModel.UseSensorLength, Mode=TwoWay}"/>

<local:IncrementingTextBox x:Name="video_length_textbox" Margin="0,0,0,5" 
                           IsTextEnabled="False" 
                           IsEnabled="{Binding ConfigurationModel.DontUseSensorLength}" 
                           ValueChanged="VideoEventValueChanged"/>
Run Code Online (Sandbox Code Playgroud)

这是我的ConfigurationModel的一个片段:

public bool DontUseSensorLength
{
    get { return !UseSensorLength; }
}

public bool UseSensorLength
{
   get { return _useSensorLength; }
   set 
   { 
      _useSensorLength = value; 
      OnPropertyChanged("UseSensorLength"); 
      OnPropertyChanged("DontUseSensorLength");
   }
}
Run Code Online (Sandbox Code Playgroud)

以下是我在运行应用程序时在输出窗口中收到的错误消息:

System.Windows.Data错误:40:BindingExpression路径错误:'object'''IncrementingTextBox'(Name ='video_length_textbox')'上找不到'ConfigurationModel'属性.BindingExpression:路径= ConfigurationModel.DontUseSensorLength; DataItem ='IncrementingTextBox'(Name ='video_length_textbox'); target元素是'IncrementingTextBox'(Name …

c# wpf xaml binding

44
推荐指数
4
解决办法
7万
查看次数

以编程方式添加的MenuItem导致绑定错误

我有一个主菜单,mnuMainMenu包括几个子菜单.其中一个子菜单mnuMostRecentDirs本身是另一个菜单,它使用绑定到ObservableCollection的ItemSource属性在运行时生成它的项目.基本上它显示最近使用的文件夹列表.

问题是添加的MenuItems动态生成以下数据绑定错误:

System.Windows.Data错误:4:无法找到绑定源,引用'RelativeSource FindAncestor,AncestorType ='System.Windows.Controls.ItemsControl',AncestorLevel ='1''.BindingExpression:路径= Horizo​​ntalContentAlignment; 的DataItem = NULL; target元素是'MenuItem'(Name =''); target属性是'Horizo​​ntalContentAlignment'(类型'Horizo​​ntalAlignment')

主菜单的XAML声明如下:

 <!-- Main Menu -->
 <Menu x:Name="mnuMainMenu" Height="Auto" IsMainMenu="True">

    <!--- ... more menu declarations before ... -->

    <MenuItem x:Name="mnuitemWorkDirs" Header="Directories">
       <MenuItem x:Name="mnuNewDir"
                 Header="New" 
                 Style="{StaticResource MenuItem}" 
                 Command="{x:Static cmds:Commands.NewDirectory}" />
       <MenuItem x:Name="mnuCurrentDir"
                 Header="Current" 
                 Style="{StaticResource MenuItem}"
                 Command="{x:Static cmds:Commands.CurrentDirectory}" />
       <MenuItem x:Name="mnuMostRecentDirs" 
                 Header="Recent Directories.."
                 Style="{StaticResource MenuItem}"
                 ItemsSource="{Binding ElementName=theMain, Path=MostRecentFoldersList}" />
    </MenuItem>

    <!--- ... more menu declarations after ... -->
 </Menu>
Run Code Online (Sandbox Code Playgroud)

以下代码在运行时将文件夹添加到observable集合:

    private void PopulateMostRecentFoldersList(string[] paths) 
    {
        MostRecentFoldersList.Clear(); …
Run Code Online (Sandbox Code Playgroud)

wpf binding styles

6
推荐指数
2
解决办法
1667
查看次数

无法找到引用绑定的源'RelativeSource FindAncestor,AncestorType ='MahApps.Metro.Controls.Glow',AncestorLevel ='1''

我已经创建了一个wpf应用程序,我在其中使用了MahApps Metro工具作为我的视图窗口.我的应用程序运行正常,但输出窗口中显示绑定错误.我没有使用该错误中提到的任何代码.

错误是:

无法找到与引用'RelativeSource FindAncestor绑定的源,AncestorType ='MahApps.Metro.Controls.Glow',AncestorLevel ='1''.BindingExpression:路径= GlowColor; 的DataItem = NULL; target元素是'SolidColorBrush'(HashCode = 9047482); 目标属性是'颜色'(类型'颜色')

xaml代码:

<Controls:MetroWindow 
    x:Name="MainWin"
    x:Class="TimeSheet.DayView"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:l="clr-namespace:TimeSheet.Views.DataTemplateSpace"
    xmlns:sys="clr-namespace:System;assembly=mscorlib"
    xmlns:Controls="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro"
    Title="DayView" Width="596" Height="596">

<Window.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Colours.xaml" />
            <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Fonts.xaml" />
            <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.xaml" />
            <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/Blue.xaml" />
            <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/BaseLight.xaml" />
        </ResourceDictionary.MergedDictionaries>

<DataTemplate x:Key="DefaultDataTemplate">
            <StackPanel Orientation="Horizontal" Width="596">
                <TextBox Text="{Binding ClientNameBinding}" Background="Transparent" Padding="0" Margin="0" BorderThickness="0" TextWrapping="Wrap" Width="145"/>
                <TextBox Text="{Binding ApplicationNameBinding}" Background="Transparent" Padding="0" Margin="0" BorderThickness="0" TextWrapping="Wrap" Width="90"/>
                <TextBox Text="{Binding StartTimeBinding}" Background="Transparent" Padding="0" Margin="0" BorderThickness="0" TextWrapping="Wrap" Width="100"/>
                <TextBox Text="{Binding …
Run Code Online (Sandbox Code Playgroud)

c# wpf xaml relativesource findancestor

3
推荐指数
1
解决办法
6843
查看次数

如何解决WPF中的"绑定表达式路径错误"?

我将一个可观察的模型对象集合绑定到数据网格.但是当我设置绑定到集合时,我得到了一个路径错误的peoprties.

在调试此问题时,我检查了CustomerModel中的公共属性是否在DataGrid绑定中正确命名.而且返回到模型的集合也不是空的.我还检查了后面的View代码中是否正确设置了数据上下文.

我认为这可能是一个错误,因为我在xaml中指定了绑定路径的方式.

对于每个字段,绑定错误的完整详细信息如下:

System.Windows.Data Error: 40 : BindingExpression path error: 'FirstName' property not found on 'object' ''MainViewModel' (HashCode=55615518)'. BindingExpression:Path=FirstName; DataItem='MainViewModel' (HashCode=55615518); target element is 'TextBox' (Name='fNameTbx'); target property is 'Text' (type 'String')

System.Windows.Data Error: 40 : BindingExpression path error: 'LastName' property not found on 'object' ''MainViewModel' (HashCode=55615518)'. BindingExpression:Path=LastName; DataItem='MainViewModel' (HashCode=55615518); target element is 'TextBox' (Name='lNameTbx'); target property is 'Text' (type 'String')

System.Windows.Data Error: 40 : BindingExpression path error: 'Email' property not found on 'object' ''MainViewModel' (HashCode=55615518)'. BindingExpression:Path=Email; DataItem='MainViewModel' (HashCode=55615518); …
Run Code Online (Sandbox Code Playgroud)

wpf binding properties mvvm

3
推荐指数
1
解决办法
1万
查看次数

如何在XAML中设置CommandParameter?

我有以下XAML:

   <dxg:GridControl Name="theGrid" DataSource="{Binding Path=Groupings}">
       <dxg:GridControl.ContextMenu>
           <ContextMenu>
               <MenuItem x:Name="gridprint" Command="{Binding Path=GridPrintCommand}"/>
           </ContextMenu>
       </dxg:GridControl.ContextMenu>
   </dxg:GridControl>
Run Code Online (Sandbox Code Playgroud)

当GridPrintCommand执行时,其GridPrintCommand.Execute(param)方法的参数为null.我想将参数设置为网格控件.我可以在代码隐藏中这样做:

gridprint.CommandParameter = theGrid;
Run Code Online (Sandbox Code Playgroud)

这很好用.但是我试图在XAML中设置相同的东西(CommandParameter),而我却无法做到正确!我放的所有内容都会导致BindingExpressionError或null参数.我错过了什么?

.net wpf xaml .net-4.0

2
推荐指数
1
解决办法
6396
查看次数

BindingExpression路径错误

有很多类似的问题,我从这些问题中尝试了很多答案,但到目前为止没有任何帮助.我不明白错误信息实际意味着什么.错误信息是;

System.Windows.Data Error: 40 : BindingExpression path error: 'CategoryModel' 
property not found on 'object' ''String' (HashCode=-57655201)'.
BindingExpression:Path=CategoryModel.CategoryList; DataItem='String'
(HashCode=-57655201); target element is 'TextBlock' (Name=''); target property is
'Text' (type 'String')
Run Code Online (Sandbox Code Playgroud)

CategoryList包含一个已满的类别的字符串列表(从调试中检查).我的xaml在下面,

<ListView x:Name="categoryListView" HorizontalAlignment="Left" Width="56" Height="156" 
              ItemsSource="{Binding Path=CategoryModel.CategoryList}" 
              DisplayMemberPath="CategoryModel.CategoryList" 
              SelectedValue="{Binding Path=CategoryModel.SelectedCategory}"
              VerticalAlignment="Top" RenderTransformOrigin="0.5,0.5">
</ListView>
Run Code Online (Sandbox Code Playgroud)

xaml设计看起来不错,应用程序运行良好,但没有任何东西被填满.应该在初始化时填充categoryList.它实际填充但listView没有显示任何内容.

编辑:

CategoryModel;

using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace RecorderApp.Model
{
public class CategoryModel : INotifyPropertyChanged
{
    private String _selectedCategory;
    private String _recordTitle;
    private String _systemInfoLabel;


    private …
Run Code Online (Sandbox Code Playgroud)

c# wpf binding

2
推荐指数
1
解决办法
1万
查看次数

WPF Datagrid [System.Windows.Data错误:4]

我有一个WPF应用程序,DataGrid如下所示:

Datagrid(简化):

<DataGrid x:Name="CoreServiceLogDataGrid"
Grid.Row="0"
Height="auto"
ItemsSource="{Binding Source={StaticResource CoreServiceCollection}}"
AutoGenerateColumns="False"
CanUserReorderColumns="True"
CanUserSortColumns="True"
IsReadOnly="True">

    <DataGrid.Columns>
        <DataGridTextColumn x:Name="ID"
            Header="ID"
            Binding="{Binding ID}" />

        <DataGridTextColumn Binding="{Binding Timestamp}"
            Header="Timestamp" />

    </DataGrid.Columns>

</DataGrid>
Run Code Online (Sandbox Code Playgroud)

加载数据时; 我得到以下错误(无数次):

System.Windows.Data Error: 4 : Cannot find source for binding with reference 'RelativeSource FindAncestor, AncestorType='System.Windows.Controls.DataGrid', AncestorLevel='1''. BindingExpression:Path=AreRowDetailsFrozen; DataItem=null; target element is 'DataGridDetailsPresenter' (Name=''); target property is 'SelectiveScrollingOrientation' (type 'SelectiveScrollingOrientation')
System.Windows.Data Error: 4 : Cannot find source for binding with reference 'RelativeSource FindAncestor, AncestorType='System.Windows.Controls.DataGrid', AncestorLevel='1''. BindingExpression:Path=HeadersVisibility; DataItem=null; target element …
Run Code Online (Sandbox Code Playgroud)

c# wpf datagrid

2
推荐指数
1
解决办法
6672
查看次数

WPF绑定错误:找不到附加的依赖项属性

我试图解决一些经常发生的数据绑定错误,如下所示

System.Windows.Data Error: 40 : BindingExpression path error: 'Active' property not found on 'object' ''FrameViewModel' (HashCode=55649279)'. BindingExpression:Path=Active; DataItem='FrameViewModel' (HashCode=55649279); target element is 'ContentControl' (Name='HeaderBorder'); target property is 'NoTarget' (type 'Object')
Run Code Online (Sandbox Code Playgroud)

我有一个附加的依赖属性Active

public bool Active
    {
        get
        {
            return (bool)GetValue(ActiveProperty);
        }
        set
        {
            SetValue(ActiveProperty, value);
        }
    }

    public static readonly DependencyProperty ActiveProperty
       = DependencyProperty.RegisterAttached("Active", typeof(bool), typeof(Card));
Run Code Online (Sandbox Code Playgroud)

绑定在控件模板中的主题文件中设置

<ControlTemplate x:Key="FrameHeader" TargetType="ContentControl">
.....
.....
<ControlTemplate.Triggers>
        <DataTrigger Binding="{Binding Path=Active}" Value="True">
            <Setter TargetName="HeaderBackground" Property="Background" Value="{DynamicResource SelectedHeaderBrush}"/>
        </DataTrigger>
        <DataTrigger Binding="{Binding Path=Active}" Value="False">
            <Setter TargetName="HeaderBackground" Property="Background" Value="{DynamicResource …
Run Code Online (Sandbox Code Playgroud)

c# wpf binding dependency-properties

1
推荐指数
1
解决办法
5129
查看次数