在更新我的軟體時,我開始面臨這個BindingExpression錯誤。
System.Windows.Data 錯誤:40:BindingExpression 路徑錯誤:在“物件”“MainViewModel”(HashCode=4781813)上找不到“SystemParameters”屬性。BindingExpression:Path=SystemParameters.PrimaryScreenHeight; DataItem='MainViewModel' (HashCode=4781813); 目標元素是 'MainWindow' (Name='XXX'); 目標屬性是“高度”(型別“雙”)
System.Windows.Data 錯誤:40:BindingExpression 路徑錯誤:在“物件”“MainViewModel”(HashCode=4781813)上找不到“SystemParameters”屬性。BindingExpression:Path=SystemParameters.PrimaryScreenWidth; DataItem='MainViewModel' (HashCode=4781813); 目標元素是 'MainWindow' (Name='XXX'); 目標屬性是“寬度”(型別“雙”)*
看了上面的報錯,好像SystemParameters在MainViewModel.
<Window x:Name="XXXX" x:Class="XXXX.Views.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:XXXX"
xmlns:localize="http://gu.se/Localization"
xmlns:properties="clr-namespace:XXXX.Properties"
mc:Ignorable="d"
d:DesignHeight="1080" d:DesignWidth="1920"
Title=""
WindowStyle="None"
ResizeMode="NoResize"
WindowStartupLocation="CenterScreen" WindowState="{Binding WindowState, Mode=TwoWay}"
DataContext="{Binding Main, Source ={StaticResource Locator}}"
Height="{Binding SystemParameters.PrimaryScreenHeight}"
Width="{Binding SystemParameters.PrimaryScreenWidth}" Background="#FFCCCCCC">
<Window.Resources>
當我啟動我的應用程式時,Initializer.cs會呼叫該類來初始化所有引數并創建MainWindow. 通過除錯,我發現問題似乎在我呼叫該方法時出現window.Show(),然后我的應用程式立即崩潰。
MainWindow window = new MainWindow();
window.Show();
uj5u.com熱心網友回復:
ABinding將DataContext默認使用元素的 來決議屬性路徑(這是繼承的)。的PrimaryScreenHeight和PrimaryScreenWidth特性static和型別的一部分SystemParameters,這是一種static型別,即不是資料背景關系的一部分。要解決此問題,您可以:
使用
x:Static標記擴展來參考靜態屬性。實作回傳靜態欄位和屬性參考的標記擴展。
Height="{x:Static SystemParameters.PrimaryScreenHeight}" Width="{x:Static SystemParameters.PrimaryScreenWidth}"如果您需要申請一個值轉換器,就可以使用
x:Static該標記擴展Source。Height="{Binding Source={x:Static SystemParameters.PrimaryScreenHeight}, Converter={StaticResource MyConverter}}" Width="{Binding Source={x:Static SystemParameters.PrimaryScreenWidth}, Converter={StaticResource MyConverter}}"
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/390986.html
