XAMLとコードビハインドファイルの間で共有される値にアクセスしようとしています。だから私はx:static
markup extensionを使うことができると思った。私はアプリを起動した場合、私はXAMLとコードビハインドファイルからのアクセス値
System.Reflection.TargetInvocationExceptionを取得
DetailPage.xaml
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:local="clr-namespace:AppName.Pages.DetailPage;assembly=AppName" x:Class="AppName.Pages.DetailPage"> <Grid x:Name="masterGrid"> <Grid.ColumnDefinitions> <ColumnDefinition Width="{x:Static local:DetailPage.Width}" /> <ColumnDefinition Width="*" /> </Grid.ColumnDefinitions> <!-- ... --> </Grid> </ContenPage>
DetailPage.xaml.cs
namespace AppName.Pages { public partial class DetailPage : ContentPage { public static readonly double Width = 40; // ... } }
:これは私のコードです:呼び出しの対象によって例外がスローされました。
マークアップ拡張子x:static
を削除すると、ページは正常に動作します。私は別の名前空間で試しましたが、成功しませんでした。
ソリューション:
Karel Tamayoの助けを借りて、私はそれが働いて得た:1として
DetailPage.xaml
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:AppName.Pages;assembly=AppName"
x:Class="AppName.Pages.DetailPage">
<Grid x:Name="masterGrid">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="{x:Static local:DetailPage.Width}" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<!-- ... -->
</Grid>
</ContenPage>
DetailPage.xaml.cs
namespace AppName.Pages
{
public partial class DetailPage : ContentPage
{
public static readonly GridLength Width = new GridLength(40, GridUnitType.Absolute);
// ...
}
}
をおそらくネームパから見ることができますDetailPage
は、Pages
というフォルダにあります。
あなたは正しいですか? ['ColumnDefinition'](https://developer.xamarin.com/api/type/Xamarin.Forms.ColumnDefinition/)は、' 'GridLength'(https://developer.xamarin.com/api/type/Xamarin)をとります。 Forms.GridLength /)を「幅」として設定します。 'Absolute'、' Auto'、 'Star'は' GridUnitType'で利用できます。今私は 'public static readonly GridLength Width = new GridLength(40、GridUnitType.Absolute);'を試みましたが、 'TargetInvocationException'を取得しました。まだまだ何かが欠けているようです... – testing
OK、今私はそれを得ました。最終的な解決策を投稿するために質問を編集します。ご協力いただきありがとうございます :-) – testing