javascript

java

python

c#

android

c++

node.js

php

html

jquery

ios

reactjs

css

.net

git

ruby-on-rails

sql

c

ruby

string

c#-在ViewModel中使用CollectionViewSource的正确方法

我使用拖放将数据源对象(一个数据库模型)绑定到CollectionViewSource(基本上遵循带WPF的实体框架数据绑定中的此示例。

使用此实现,一切正常。

XAML

<Window.Resources>    
<CollectionViewSource x:Key="categoryViewSource"  
    d:DesignSource="{d:DesignInstance {x:Type local:Category}, CreateList=True}"/>
</Window.Resources>
<Grid DataContext="{StaticResource categoryViewSource}">
..

背后的代码

private void Window_Loaded(object sender, RoutedEventArgs e)
{
   System.Windows.Data.CollectionViewSource categoryViewSource =
      ((System.Windows.Data.CollectionViewSource)(this.FindResource("categoryViewSource")));

  _context.Categories.Load();
  categoryViewSource.Source = _context.Categories.Local;        
}

视图模型

public MainWindow()
{
    InitializeComponent();
    this.DataContext = new MyViewModel();
}

但是,当我尝试在ViewModel中使用相同的代码时,它不起作用(CollectionViewSource不可用),此外,我认为这不是正确的方法(即在MVVM中使用DataBinding)。

我真的很感激能为我指出什么是用DataGrid实现CollectionViewSourceDataBinding的正确方法。

trans by 2020-08-11T21:29:14Z

.net-WPF Datagrid中的网格线着色

如何设置WPF DataGrid的网格线的颜色? 我可以使用属性GridLinesVisibility隐藏这些行,但是我不知道如何给它们上色。 我用行和单元格的Borderbrush尝试了一下,但没有成功。

trans by 2020-07-26T11:58:32Z

我如何将List <CustomObject>绑定到WPF DataGrid?

我是WPF的新手,想做一些基本的数据绑定。我有一个CustomObject的列表,并希望将其绑定到DataGrid。

MainWindow.xaml.cs

   using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Windows;
    using System.Windows.Controls;
    using System.Windows.Data;
    using System.Windows.Documents;
    using System.Windows.Input;
    using System.Windows.Media;
    using System.Windows.Media.Imaging;
    using System.Windows.Navigation;
    using System.Windows.Shapes;

    namespace WpfApplication1
    {
        /// <summary>
        /// Interaction logic for MainWindow.xaml
        /// </summary>
        public partial class MainWindow : Window
        {
            public MainWindow()
            {
                InitializeComponent();
                List<ArticleItem> list = new List<ArticleItem>() 
                {
                new ArticleItem(){ ID=3, Title="test", ViewCount=5},
                new ArticleItem(){ ID=3, Title="test", ViewCount=5},
                new ArticleItem(){ ID=3, Title="test", ViewCount=5},
                new ArticleItem(){ ID=3, Title="test", ViewCount=5},
                };
            }
        }

        public class ArticleItem 
        {
            public int ID { get; set; }
            public int ViewCount { get; set; }
            public String Title { get; set; }
        }
    }

这是我的网格的样子:

<DataGrid Height="179" HorizontalAlignment="Left" Margin="54,65,0,0" Name="dataGrid1" VerticalAlignment="Top" Width="382">
    <DataGrid.Columns>
        <DataGridTextColumn Header="ID"/>
            <DataGridTextColumn Header="ViewCount" />
        <DataGridTextColumn Header="Title" />
    </DataGrid.Columns>
</DataGrid>

我习惯了ASP.Net的数据绑定,在这里我可以轻松地说:

this.dataGrid1.DataSource = list;

我必须如何进行WPF?

trans by 2020-07-23T00:07:59Z

CodeGo.net>向WPF DataGrid添加按钮

我想在WPF中创建DataGrid控件,其中每行的第一个单元格中都有一个按钮。 单击此按钮将显示RowDetailsTemplate或SubRow。 我关心的是如何添加显示/隐藏RowDetailsTemplate的按钮?

任何帮助将不胜感激

谢谢

trans by 2020-06-20T19:54:29Z

如何向WPF DataGrid添加上下文菜单?

只是想知道如何将ContextMenu添加到DataGrid? 我希望能够右键单击DataGrid上的任何位置。 有人可以提供一个简单的hello world示例(仅弹出消息框之类的)吗?

谢谢!

trans by 2020-06-18T10:01:20Z

.net-WPF中的列表视图和DataGrid之间的区别?

嘿,我必须从数据库中检索一些问题并将其动态显示在用户屏幕上。我还需要在网格视图的列中添加一些控件,基本上是一个问题和一个答案输入框。请建议我应该使用哪个? 列表视图还是数据网格?

trans by 2020-06-17T04:24:13Z

如何获得带有包装文本而不是截断文本的单元格的WPF Datagrid?

要获得带有包装文本而不是将其截断的单元格的WPF DataGrid,必须做什么?

现在,当文本较大且不适合列时,文本将被截断,并且用户无法看到它的值,因为DataGrid的IsReadOnly属性为true。 我想要的是将单元格中的文本换行,并且单元格高度(NO CELL WIDTH)增加了显示所有文本所需的数量。

trans by 2020-02-16T06:37:32Z

禁用在WPF DataGrid中选择

如何禁用WPFTooklit的DataGrid中的选择?我尝试修改适用于ListView的解决方案(从WPF ListView关闭选择),但这不起作用:

<tk:DataGrid>
    <tk:DataGrid.ItemContainerStyle>
        <Style TargetType="{x:Type tk:DataGridRow}">
            <Setter Property="Focusable" Value="false"/>
        </Style>
    </tk:DataGrid.ItemContainerStyle>
    <tk:DataGrid.CellStyle>
        <Style TargetType="{x:Type tk:DataGridCell}">
            <Setter Property="Focusable" Value="false"/>
        </Style>
    </tk:DataGrid.CellStyle>
</tk:DataGrid>
trans by 2020-02-09T11:15:11Z

WPF DataGrid:使单元格变为只读

我使用以下DataGrid

<DataGrid Grid.Row="1" Grid.Column="1" Name="Grid" ItemsSource="{Binding}"  AutoGenerateColumns="False" >
            <DataGrid.Columns>
                <DataGridTextColumn Header="Name" Width="100" Binding="{Binding Path=Name}"></DataGridTextColumn>
                <DataGridTextColumn Header="OldValue" Width="100" Binding="{Binding Path=OldValue}"></DataGridTextColumn>
                <DataGridTextColumn Header="NewValue" Width="100*" Binding="{Binding Path=NewValue}"></DataGridTextColumn>
            </DataGrid.Columns>
        </DataGrid>

如何使单元格为只读?

trans by 2020-01-25T18:13:36Z

C#-DataGrid行内容垂直对齐

我有一个来自WPF 4.0 RTM的常规DataGrid,其中存放了来自数据库的数据。 为了制作DataGrid的简洁样式,我使用高/高行,默认情况下DataGrid将行内容对齐在顶部垂直位置,但是我想设置中心垂直对齐。

我已经尝试使用此属性

VerticalAlignment="Center"

选项DataGrid中,但对我没有帮助。

这是XAML代码的示例,描述了我的DataGrid没有中心垂直对齐的情况:

<DataGrid x:Name="ContentDataGrid"
    Style="{StaticResource ContentDataGrid}"
    ItemsSource="{Binding}"
    RowEditEnding="ContentDataGrid_RowEditEnding">
<DataGrid.Columns>
    <DataGridTextColumn Header="UserID"
            Width="100"
            IsReadOnly="True"
            Binding="{Binding Path=userID}" />
    <DataGridTextColumn Header="UserName"
            Width="100"
            Binding="{Binding Path=userName}" />
    <DataGridTextColumn Header="UserAccessLevel"
            Width="100"
            Binding="{Binding Path=userAccessLevel}" />
    <DataGridTextColumn Header="UserPassword"
            Width="*"
            Binding="{Binding Path=userPassword}" />
</DataGrid.Columns>
</DataGrid>

执行此代码的结果:

alt text

如您所见,所有行内容的顶部垂直对齐。

为了使各行内容的中心垂直对齐,我必须添加什么?

trans by 2020-01-22T23:13:43Z

c#-WPF datagrid中的日期格式

我已经在stackoverflow上搜索了一种解决方案,并发现了这一点:

需要在动态构建的WPF DataGrid中格式化日期

我的问题是,我从SQL-Server-Database中加载了一些数据,并希望在DataGrid的WPF应用程序中显示它们。 这很好。我唯一要更改的是日期列的格式为“ DD / MM / YYYY HH:MM:SS”,而我想包含“ DD.MM.YYYY”。好的,然后我查看了下面的链接,并在程序中尝试了此操作:

<Grid Width="648" Height="263">

  <Grid.ColumnDefinitions>
       <ColumnDefinition Width="172*" />
       <ColumnDefinition Width="90*" />
       <ColumnDefinition Width="386*" />
  </Grid.ColumnDefinitions>

  <DataGrid Name="dgBuchung" Height="213" HorizontalAlignment="Left" Margin="30,16,0,0"     VerticalAlignment="Top" Width="595" AutoGenerateColumns="True" ItemsSource="{Binding}" Grid.ColumnSpan="3" Foreground="Black" BorderBrush="#FF688CAF" Opacity="1" Background="White" BorderThickness="1" >
 <!-- <ab:DataGridTextColumn Header="Fecha Entrada" Width="110"  
       Binding="{Binding date, StringFormat={}{0:dd/MM/yyyy}}" IsReadOnly="True" />
                        -->
</DataGrid>

</Grid>

注释不完的部分是我的解决方法,但是它抛出XMLParseException。首先,使用AutoGenerateColumns时,这种解决方案是否可行?如果没有,我该如何处理呢?如果是,那么上面的代码有什么问题?

编辑:我的问题没有解决,因为我决定不重建我的应用程序,是否没有使用AutoGenerateColumns = true的解决方案?

trans by 2020-01-02T04:57:05Z

c#-从MVVM WPF项目的DataGrid中选择多个项目

如何在MVVM WPF项目中从DataGrid中选择多个项目?

trans by 2019-11-10T19:32:30Z

wpf-如何将工具提示添加到DataGridTextColumn

我正在使用WPFtoolkit DataGrid,我必须将文本包装在DataGridTextColumn或我必须在文本列中添加ToolTip。 我已经在网上搜索过,但是找不到正确的解决方案。 期待您的宝贵建议...

trans by 2019-11-03T17:12:45Z

datagrid-在WPF中的dataGridCells上设置填充

一个简单的问题:如何在WPF中的dataGridCell上设置填充?(不管是一次还是所有单元格,我都不在乎)

我尝试通过在DataGridCell.Padding属性上添加一个setter来使用DataGrid.CellStyle属性,以及以相同的方式使用DataGridColumn.ElementStyle属性,但没有任何效果。

我也尝试使用DataGridColumn.ElementStyle属性,但没有更多的运气。

我有点卡在那儿,有没有人设法在dataGridCell上应用填充?

注意:我要补充一点,不,我不能使用透明边框来做到这一点,因为我已经将border属性用于其他用途。 我也不能使用margin属性(这似乎起作用,足够令人惊讶),因为我使用background属性,并且我不希望单元格之间有任何“空白”空间。

trans by 2019-10-27T03:57:37Z

如何在WPF Datagrid上启用滚动条?

当我从本文运行以下Northwind WPF Toolkit Datagrid代码时,我得到了一个数据网格,但是没有滚动条,因此用户只能看到该数据网格的一部分。 我使用的是2009年3月的最新版本。

我需要指定什么以便WPF Datagrid具有滚动条?

我尝试将datagrid放入ScrollViewer,但这没有帮助。

XAML:

<Window x:Class="TestDataGrid566.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:toolkit="http://schemas.microsoft.com/wpf/2008/toolkit"
    Title="Window1" Height="600" Width="800">
    <StackPanel>
        <toolkit:DataGrid x:Name="TheDataGrid" AutoGenerateColumns="True"/>
    </StackPanel>
</Window>

后台代码:

using System.Linq;
using System.Windows;
using TestDataGrid566.Model;

namespace TestDataGrid566
{
    public partial class Window1 : Window
    {
        public Window1()
        {
            InitializeComponent();

            NorthwindDataContext db = new NorthwindDataContext();
            var customers = from c in db.Customers
                            select c;
            TheDataGrid.ItemsSource = customers;
        }
    }
}
trans by 2019-10-25T09:06:08Z

删除所有DataGrid行和单元格边框

我想隐藏(或删除)我的数据网格中所有行(以及随后的单元格)的所有边框,想想一个基本的HTML表。 我四处张望,大多数问题似乎都是关于样式设计而不是隐藏它们。

我已经尝试过像这样设置BorderBrush和BorderThickness:

 <DataGrid.RowStyle>
     <Style TargetType="DataGridRow">
         <Setter Property="BorderBrush" Value="Transparent" />
         <Setter Property="BorderThickness" Value="0" />
     </Style>
  </DataGrid.RowStyle>

尝试了相同的CellStyle,但没有骰子,仍然有边框。

trans by 2019-10-15T08:35:22Z

在DataGrid WPF中获取选定的行项目

我有一个MessageBox,绑定到数据库表,我需要在DataGrid中获取所选行的内容,例如,我想在MessageBox中显示所选行的内容。

MessageBox的示例:

enter image description here

因此,如果我选择第二行,我的MessageBox必须显示类似以下内容的内容:646 Jim Biology。

trans by 2019-10-14T06:34:17Z

c#-从MVVM WPF项目的DataGrid中选择多个项目

如何在MVVM WPF项目中从DataGrid中选择多个项目?

trans by 2019-10-13T09:51:39Z

更改DataGrid单元格的颜色基于值

我有一个WPF数据网格,我希望根据值使用不同的单元格颜色。 我的xaml上有以下代码

Style TargetType="DataGridCell"

但不是只选择一个单元格而是选择所有行? 我想念什么?

trans by 2019-10-06T02:36:21Z

CodeGo.net>在WPF中安全地访问UI(主)线程

我有一个应用程序,该应用程序每次以以下方式更新我正在观看的日志文件(附加新文本)时更新我的datagrid:

private void DGAddRow(string name, FunctionType ft)
    {
                ASCIIEncoding ascii = new ASCIIEncoding();

    CommDGDataSource ds = new CommDGDataSource();

    int position = 0;
    string[] data_split = ft.Data.Split(' ');
    foreach (AttributeType at in ft.Types)
    {
        if (at.IsAddress)
        {

            ds.Source = HexString2Ascii(data_split[position]);
            ds.Destination = HexString2Ascii(data_split[position+1]);
            break;
        }
        else
        {
            position += at.Size;
        }
    }
    ds.Protocol = name;
    ds.Number = rowCount;
    ds.Data = ft.Data;
    ds.Time = ft.Time;

    dataGridRows.Add(ds); 

    rowCount++;
    }
    ...
    private void FileSystemWatcher()
    {
        FileSystemWatcher watcher = new FileSystemWatcher(Environment.CurrentDirectory);
        watcher.Filter = syslogPath;
        watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite
            | NotifyFilters.FileName | NotifyFilters.DirectoryName;
        watcher.Changed += new FileSystemEventHandler(watcher_Changed);
        watcher.EnableRaisingEvents = true;
    }

    private void watcher_Changed(object sender, FileSystemEventArgs e)
    {
        if (File.Exists(syslogPath))
        {
            string line = GetLine(syslogPath,currentLine);
            foreach (CommRuleParser crp in crpList)
            {
                FunctionType ft = new FunctionType();
                if (crp.ParseLine(line, out ft))
                {
                    DGAddRow(crp.Protocol, ft);
                }
            }
            currentLine++;
        }
        else
            MessageBox.Show(UIConstant.COMM_SYSLOG_NON_EXIST_WARNING);
    }

当为FileWatcher引发事件时,因为它创建了一个单独的线程,所以当我尝试运行dataGridRows.Add(ds); 要添加新行,程序会在调试模式下崩溃而没有任何警告。

在Winforms中,可以通过使用Invoke函数轻松解决此问题,但是我不确定如何在WPF中进行此操作。

trans by 2019-09-27T12:29:50Z

1 2 下一页 共2页