小编msk*_*t86的帖子

WPF:从ListViewItem中删除高亮效果

我正在开发一个有日志的WPF应用程序.该日志使用listView设计.当鼠标结束或选择项目时,listviewitems最不会改变外观.我已经用listview的这种风格解决了这个问题:

<Style x:Key="ItemContainerStyle1" TargetType="ListViewItem">
    <Setter Property="HorizontalContentAlignment" Value="Left"/>
    <Style.Triggers>
        <Trigger Property="IsMouseOver" Value="True">
            <Setter Property="Background" Value="Transparent" />
            <Setter Property="BorderThickness" Value="0" />
            <Setter Property="Focusable" Value="False" />
        </Trigger>
    </Style.Triggers>
</Style>
Run Code Online (Sandbox Code Playgroud)

这种风格解决了我的问题,但提出了一个新问题.当背景设置为"透明"时,当鼠标位于列表视图项目上时,我现在能够看到下图所示的悬停/光泽效果.

在此输入图像描述

我试图通过这种尝试解决问题,但没有运气.

<Style TargetType="{x:Type ListViewItem}">
    <Style.Resources>
      <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="#00000000"/>
      <SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}" Color="#00000000"/>
    </Style.Resources>
</Style>
Run Code Online (Sandbox Code Playgroud)

任何人都知道如何消除这种恼人的悬停效果?

提前致谢

.net wpf xaml styles

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

使用CodeFirst检查实体框架中的表是否为空

我正在使用MVVM开发一个应用程序,我想使用Entity Framwork 5.0.这是我第一次使用EF,所以希望我能解释一下我的问题所以你们都明白了.我的应用程序有一个嵌入式数据库,我正在使用Code-First方法.

下面是一个示例来说明问题:这里我设置了我的项目模型,我在嵌入式数据库中设置为一个表,如果我理解正确的话.

class CreateDbContext : DbContext
{
    public CreateDbContext() : base() { }

    public CreateDbContext(String nameOrConnectionString) : base(nameOrConnectionString) { }

    public DbSet<Project> Projects { set; get; }
}
Run Code Online (Sandbox Code Playgroud)

现在,在我的ProjectViewModel中,我想在执行任何操作之前检查数据库中的Project表是否为空.

using (var db = new CreateDbContext())
{
    if(db.Projects <-- checked if this is Tablet is empty ??)
}
Run Code Online (Sandbox Code Playgroud)

我该怎么做,或者甚至可能吗?

.net c# entity-framework

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

Git 更改列表

我对 git 相当陌生,现在我知道基础知识。即使我在日常工作中使用带有 GUI 的插件/程序来使用 git,我也很想知道幕后发生了什么。

我通常在 Intellij 工作,在那里我可以将我的更改拆分到不同的“更改列表”中。

如下图所示,我有一个带有 Markdown 文件的更改列表和一个带有脚本更改的默认更改列表。

这是一张显示它的图片:

在此处输入图片说明

我想知道更改列表是 Git 中的一个概念还是只是 Intellij 插件中的一个概念?

如果是 Git 中的概念,那么命令行中需要的命令是什么?

git intellij-idea

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

Async/Await迭代返回的Task <IEnumerable <SomeClass >>

我想在我的WPF应用程序中使用HTTP调用查询数据库时使用async/await.这是我第一次使用async/await,所以如果你看到任何明显的错误,请随意指出它们.

问题是,我不能再遍历返回的收集,因为它现在是一个任务<IEnumerable<SomeClass>>,并且从我发现,任务不实现IEnumerable/IEnumerator.

我的代码如下所示:调用async/await方法的方法.

private void AddProjectDrawingAndComponentsFromServerToLocalDbAsync(CreateDbContext1 db, Project item)
{
   var drawings = client.GetDrawingsAsync(item.ProjectId);
   ..... (waiting for GetDrawingsAsync to return, so i can iterate over the drawings)
   db.SaveChanges();
}
Run Code Online (Sandbox Code Playgroud)

GetDrawingsAsync方法:

public async Task<IEnumerable<Drawing>> GetDrawingsAsync(int projectId)
{
    var drawings = Task.Factory.StartNew(() => _client.Get(new GetDrawingsReq() { ProjectId = projectId }));
    return await drawings;
}
Run Code Online (Sandbox Code Playgroud)

返回等待异步方法完成的方法:

private void AddProjectDrawingAndComponentsFromServerToLocalDbAsync(CreateDbContext1 db, Project item)
{
    var drawings = client.GetDrawingsAsync(item.ProjectId);  <-- The returned Task<Task<IEnumerable<Drawing>>
    Drawing prj_drawing = null;
    foreach (var draw in drawings)
    { …
Run Code Online (Sandbox Code Playgroud)

c# async-await

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

使用MVVM单击按钮时对列表框进行排序

从昨天开始,我一直在为我的问题寻找解决方案.我正在构建MVVM模式的问题.我有两个usercontrol,它们都包含一个列表框.

第一个用户控件称为SearchView,它包含项目名称列表框,用户可以选择并保存到应用程序本地数据库.

在此输入图像描述

添加所选项目时会触发一个事件,该事件通知名为"ProjectView"的第二个usercontrol.此用户控件只显示本地保存的项目.见下图.

在此输入图像描述

问题是我希望能够在项目视图中按名称升序列表框.因此,如果用户首先添加"测试项目2"并且后面添加"测试项目1",则"测试项目1"将显示在列表框的顶部.

我曾尝试使用ICollectionView和ListCollectionView,但我现在非常非常困惑.

所以现在我的代码看起来像这样,在需要对列表框进行排序的ProjectViewModel中:

 public ProjectViewModel() {
     this.collectionView = CollectionViewSource.GetDefaultView(this.Projects);
 }

 private ObservableCollection<ProjectWrapper> _project = new ObservableCollection<ProjectWrapper>();
 public ObservableCollection<ProjectWrapper> Projects
 {
     get { return _project; }
     set
     {
         _project = value;
         OnPropertyChanged("Projects");
     }
 }
Run Code Online (Sandbox Code Playgroud)

XAML代码:

<UserControl.Resources>
    <CollectionViewSource x:Key="cvs" Source="{Binding Path=Projects}">
        <CollectionViewSource.SortDescriptions>
            <scm:SortDescription PropertyName="ProjectWrapper.Project.Name" />
        </CollectionViewSource.SortDescriptions>
    </CollectionViewSource>
</UserControl.Resources>

<ListBox Name="ProjectsList" ItemsSource="{Binding Source={StaticResource cvs}}" SelectedItem="{Binding Path=SelectedProject}" HorizontalContentAlignment="Stretch" BorderThickness="0" Grid.Row="1" Grid.RowSpan="3" Margin="0,0.4,-0.2,27.8">
        <ListBox.ItemTemplate>
            <DataTemplate>
                <DockPanel>
                    <TextBlock Text="{Binding Path=ProjectModel.Name}" HorizontalAlignment="Left" VerticalAlignment="Center" Padding="3,2,0,0" />
                    <CheckBox  IsChecked="{Binding Path=IsSelected, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" HorizontalAlignment="Right" VerticalAlignment="Center" Padding="0,2,5,0" Margin="0,2.5,0,0" …
Run Code Online (Sandbox Code Playgroud)

c# wpf xaml mvvm

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

docker create service与docker deploy stack

新的Docker 1.13.0版本推出docker stack deploy.

docker stack deploy增加了docker-compose.yml直接从文件部署服务的支持.

命令docker service createdocker deploy stack创建相同的服务,只是我两种不同的方式?

是否有任何特殊功能通过创建它添加服务docker deploy stack

我有点困惑,无法找到有关此主题的任何信息.

提前致谢

docker docker-swarm

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