小编Bra*_*ick的帖子

获得Enum价值的属性

我想知道是否可以获取枚举值的属性而不是枚举本身的属性?例如,假设我有以下枚举:

using System.ComponentModel; // for DescriptionAttribute

enum FunkyAttributesEnum
{
    [Description("Name With Spaces1")]
    NameWithoutSpaces1,    
    [Description("Name With Spaces2")]
    NameWithoutSpaces2
}
Run Code Online (Sandbox Code Playgroud)

我想要的是枚举类型,产生2元组的枚举字符串值及其描述.

价值很容易:

Array values = System.Enum.GetValues(typeof(FunkyAttributesEnum));
foreach (int value in values)
    Tuple.Value = Enum.GetName(typeof(FunkyAttributesEnum), value);
Run Code Online (Sandbox Code Playgroud)

但是如何获取描述属性的值,以填充Tuple.Desc?如果属性属于枚举本身,我可以想到如何做到这一点,但我不知道如何从枚举的值中获取它.

c# reflection enums .net-attributes

453
推荐指数
9
解决办法
27万
查看次数

Intellij IDEA:"从源头滚动"的热键

我找不到"从源滚动"功能的热键.

Scroll from Source和Scroll to Source之间有什么区别?

jetbrains-ide intellij-idea

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

Xamarin.Forms - 创建新页面时不存在InitializeComponent

我正在使用Visual Studio来试用Xamarin.Forms.我正在尝试遵循指南:http: //developer.xamarin.com/guides/cross-platform/xamarin-forms/xaml-for-xamarin-forms/getting_started_with_xaml/

简而言之,我使用PCL创建了一个Xamarin.Forms解决方案,然后尝试将其添加Forms XAML Page到PCL项目中.

创建的代码隐藏看起来像这样:

    public partial class Page1 : ContentPage
    {
        public Page1()
        {
            InitializeComponent(); 
        }
    }
Run Code Online (Sandbox Code Playgroud)

这里的问题InitializeComponent();是红色.当我尝试建立时,我得到了通知The name 'InitializeComponent' does not exist in the current context

我一直在寻找解决方案,即使其他人遇到同样的麻烦,他们的解决方案也不适合我.以下是我尝试使用的一条建议:http: //blog.falafel.com/xamarin-error-initializecomponent-does-not-exist-in-the-current-context/

如果您有解决此问题的方法,请告诉我.谢谢!

更新:

我的PCL(我也想添加我的XAML页面)包含:

App.cs:

    public class App : Application
    {
        public App()
        {
            // The root page of your application
            MainPage = new ContentPage
            {
                Content = new StackLayout
                {
                    VerticalOptions = LayoutOptions.Center,
                    Children = {
                        new Label { …
Run Code Online (Sandbox Code Playgroud)

xamarin xamarin.forms

64
推荐指数
7
解决办法
5万
查看次数

NuGet.Config文件位于Visual Studio 2017项目中的哪个位置?

我想知道NuGet.Config文件位于Visual Studio 2017项目中的哪个位置?我试图在项目的根目录中创建自己的NuGet.Config文件,但是我没有找到任何新的存储库(NuGet源代码).有人有任何想法吗?

这是我试图为我的.Net Core项目实现的文件:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <add key="AspNetCore" value="https://dotnet.myget.org/F/aspnetcore-ci-dev/api/v3/index.json" />
    <add key="AspNetCoreTools" value="https://dotnet.myget.org/F/aspnetcore-tools/api/v3/index.json" />
    <add key="NuGet" value="https://api.nuget.org/v3/index.json" />
  </packageSources>
</configuration>
Run Code Online (Sandbox Code Playgroud)

c# visual-studio .net-core visual-studio-2017

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

使用dagger 2的Android生命周期库ViewModel

我有一个ViewModel类,就像在Architecture指南Connecting ViewModel和repository部分中定义的那样.当我运行我的应用程序时,我得到运行时异常.有谁知道怎么解决这个问题?我应该不注入ViewModel吗?有没有办法告诉使用Dagger创建模型?ViewModelProvider

public class DispatchActivityModel extends ViewModel {

    private final API api;

    @Inject
    public DispatchActivityModel(API api) {
        this.api = api;
    }
}
Run Code Online (Sandbox Code Playgroud)

引起:java.lang.InstantiationException:java.lang.Class在java.lang.Class.newInstance(Native Method)的android.arch.lifeModelProvider $ NewInstanceFactory.create(ViewModelProvider.java:143)中没有零参数构造函数在Android.arch.lifecycle.ViewModelProvider.get上的android.arch.lifecycle.ViewModelProviders $ DefaultFactory.create(ViewModelProviders.java:143)android.arch.lifecycle.ViewModelProvider.get(ViewModelProvider.java:128)(ViewModelProvider.java) :96)com.example.base.BaseActivity.onCreate(BaseActivity.java:65)at com.example.dispatch.DispatchActivity.onCreate(DispatchActivity.java:53)at android.app.Activity.performCreate(Activity.java: 6682)在android.app.Anstrumentation.callActivityOnCreate(Instrumentation.java:1118)的android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2619)android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2727). android.app.ActivityT上的app.ActivityThread.-wrap12(ActivityThread.java)在android.app.ActivityThread.main上的android.os.Handler.dispatchMessage(Handler.java:102)上的android.os.Looper.loop(Looper.java:154)处获取$ H.handleMessage(ActivityThread.java:1478) (ActivityThread.java:6121)

android android-lifecycle dagger-2

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

Xamarin Forms StackLayout:如何将子项的宽度/高度设置为百分比

有没有办法创建一个垂直堆栈布局,其中一个按钮占用父项的30%,一个文本输入占用父项的70%?像这样的东西:

<StackLayout Orientation="Vertical">
    <Entry Height="70%"></Entry>
    <Button Height="30%">Click me</Button>
</StackLayout>
Run Code Online (Sandbox Code Playgroud)

但这不起作用.到目前为止,只有解决方案是创建一个完整的Grid项目并使用它.没有其他解决方案吗?

xaml xamarin xamarin.forms

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

是否可以使用Xaml设计器或智能感知与Xamarin.Forms?

Xamarin 3.0引入了Xamarin.Forms,这是一个功能强大的UI抽象,允许开发人员轻松创建可在Android,iOS和Windows Phone之间共享的用户界面.

它似乎非常强大,但我面临一些创建UI的困难,因为Xamarin.Forms带有40多个控件.如果没有intellisense或极简主义设计师,搜索官方文档中的所有属性或浏览c#代码会相当适得其反.

默认的Xaml teamplate就像这样,在没有任何帮助的情况下添加新控件显然不是一件容易的事.

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
                       xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
                       x:Class="App1.Class1">
    <Label Text="{Binding MainText}"  VerticalOptions="Center" HorizontalOptions="Center" />
</ContentPage>
Run Code Online (Sandbox Code Playgroud)

那么有没有机会在Xaml中使用intellisense或使用Xaml设计器?

c# xaml xamarin xamarin.forms

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

C#根据某个属性的值将列表拆分为子列表?

我有一个事件列表,每个事件都有一个datetime属性.我需要按年将列表拆分为子列表.诀窍是,我的事件列表是从数据库中提取的,可能会发生变化,所以我不能只对这些年份进行硬编码并将事件排序到正确的年份.有没有办法可以将我的主要事件列表拆分为子列表,以便在每个子列表中,每个事件都在同一年?所以我最终会得到所有2010年活动的子列表,所有2011年活动的子列表,等等.

我的列表是这样创建的:

foreach (var ev in eventResults)
    {
        eventsList.Add(new Event()
        {
            Name = ev.Title,
            Month = CultureInfo.CurrentCulture.DateTimeFormat.GetAbbreviatedMonthName(ev.StartDate.Month),
            Day = ev.StartDate.Day,
            Year = ev.StartDate.Year
        });
    }
Run Code Online (Sandbox Code Playgroud)

c# list

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

名称不能以'$'字符开头,十六进制值0x24

我有这个警告永远不会消失,我不知道如何修复它:

警告名称不能以'$'字符开头,十六进制值0x24.

.Android C:\ Program Files(x86)\ Microsoft Visual Studio\2017\Community\MSBuild\Xamarin\Android

C:\ Program Files(x86)\ Microsoft Visual Studio\2017\Community\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets 1668 Build

在启用详细的详细程度后,它指向Xamarin.Android.Common.targets文件的这一部分:

<Target Name="_GenerateJavaStubs" DependsOnTargets="_SetLatestTargetFrameworkVersion;_PrepareAssemblies;$(_AfterPrepareAssemblies)" Inputs="$(MSBuildAllProjects);@(_ResolvedAssemblies);$(_AndroidManifestAbs);$(_AndroidBuildPropertiesCache)" Outputs="$(IntermediateOutputPath)android\AndroidManifest.xml;$(_AcwMapFile);$(_AndroidTypeMappingJavaToManaged);$(_AndroidTypeMappingManagedToJava)">
  <GenerateJavaStubs ResolvedAssemblies="@(_ResolvedAssemblies)" ResolvedUserAssemblies="@(_ResolvedUserAssemblies)" ManifestTemplate="$(_AndroidManifestAbs)" MergedManifestDocuments="@(ExtractedManifestDocuments)" Debug="$(AndroidIncludeDebugSymbols)"
    NeedsInternet="$(AndroidNeedsInternetPermission)" AndroidSdkPlatform="$(_AndroidApiLevel)" AndroidSdkDir="$(_AndroidSdkDirectory)" PackageName="$(_AndroidPackage)" ManifestPlaceholders="$(AndroidManifestPlaceholders)" OutputDirectory="$(IntermediateOutputPath)android"
    MergedAndroidManifestOutput="$(IntermediateOutputPath)android\AndroidManifest.xml" UseSharedRuntime="$(AndroidUseSharedRuntime)" EmbedAssemblies="$(EmbedAssembliesIntoApk)" ResourceDirectory="$(MonoAndroidResDirIntermediate)" BundledWearApplicationName="$(BundledWearApplicationPackageName)"
    PackageNamingPolicy="$(AndroidPackageNamingPolicy)" ApplicationJavaClass="$(AndroidApplicationJavaClass)" AcwMapFile="$(_AcwMapFile)">
  </GenerateJavaStubs>
  <ConvertResourcesCases ResourceDirectories="$(MonoAndroidResDirIntermediate)" AcwMapFile="$(_AcwMapFile)" />
</Target>
Run Code Online (Sandbox Code Playgroud)

我不知道是否需要修改此文件或者我的某个文件是否导致该问题.我仔细检查过,我的文件实际上都没有以$开头.

有任何想法吗?

谢谢.

xamarin.android xamarin visual-studio-2017

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

单击按钮上的Xamarin.Forms动画(Flash背景)

我想在我的表单上实现一个拨号盘.现在,在我的XAML中,我正在测试一个按钮:XAML

<?xml version="1.0" encoding="UTF-8"?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" 
         xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 
         x:Class="MyXFDemo001.Views.NewItemPage"
         Title="New Item">
<ContentPage.ToolbarItems>
    <ToolbarItem Text="Save" Clicked="Save_Clicked" />
</ContentPage.ToolbarItems>
<ContentPage.Content>
    <StackLayout Spacing="20" Padding="15">
        <Button
            x:Name="buttonSelectContact"
            Clicked="buttonSelectContact_Clicked"
            Text="CLICK" BackgroundColor="#0080ff" />
    </StackLayout>
</ContentPage.Content>
Run Code Online (Sandbox Code Playgroud)

在我的代码后面我有一个方法buttonSelectContact_Clicked:

private async void buttonSelectContact_Clicked(object sender, EventArgs e)
{
    Button btn = (Button)sender;
    btn.BackgroundColor = Color.FromHex("#22ac38");
    await Task.Delay(500);
    btn.BackgroundColor = Color.FromHex("#0080ff");
}
Run Code Online (Sandbox Code Playgroud)

它可以工作,但并不像我想要的那样平稳.你能建议我添加动画而不是这个BackgroundColor吗?

c# animation xaml xamarin.forms

18
推荐指数
3
解决办法
4698
查看次数