刚才发了一贴关于datagrid的操作,没写清楚是web还是winform的,多谢刚才几位高手的帮助,这里重新发一次。
是web版的wpf开发,前台是xaml文件,后台是c#文件,现在要实现动态的控制datagrid中的单元格的背景色控制,
后台数据绑定是利用datacontext=model来实现刚才根据讲解写出来的代码如下:
xaml文件上:头部文件<wps:PageBase x:Class="FastRetailing.G1.WPS.Client.Biz.Monthly.View.Monthlylaborcostview"
xmlns:wtk="clr-namespace:Microsoft.Windows.Controls;assembly=WPFToolkit"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/up-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
xmlns:wps="clr-namespace:FastRetailing.G1.WPS.Framework.Client.Base;assembly=WPS.Framework.Client"
xmlns:wpsv="clr-namespace:FastRetailing.G1.WPS.Framework.Client.Validation;assembly=WPS.Framework.Client"
xmlns:l="clr-namespace:FastRetailing.G1.WPS.Client.Biz.Monthly.View" datagrid的文件部分:<my:DataGrid ItemsSource="{Binding}" Grid.Column="3" Grid.Row="3" Height="120" HorizontalAlignment="Left" Margin="1,0,0,0" Name="dataGrid1" VerticalAlignment="Bottom" Width="1000" Grid.ColumnSpan="5" SelectionMode="Single" SelectionUnit="Cell">
<my:DataGrid.Columns>
<my:DataGridTextColumn Header="週間" Width="80" Binding="{Binding Path=Name}">
<my:DataGridTextColumn.CellStyle>
<Style TargetType = "my:DataGridCell">
<Setter Property="Background" Value="{Binding Path=Name, Converter={StaticResource ValueConVerter }}">
</Setter>
</Style >
</my:DataGridTextColumn.CellStyle>
</my:DataGridTextColumn> </my:DataGrid.Columns>
</my:DataGrid>后台c#代码如下:
public class ValueConVerter : IValueConverter
{ public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if ((int)value > 10)
{
return Brushes.Blue;
}
else
{
return Brushes.Green;
}
} public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}我现在出现的问题是标注红色的Converter部分总是提示找不到文件名,这个问题是因为我前台未到如什么文件,还是后台的这个类的创建位置有问题
谢谢各位!
是web版的wpf开发,前台是xaml文件,后台是c#文件,现在要实现动态的控制datagrid中的单元格的背景色控制,
后台数据绑定是利用datacontext=model来实现刚才根据讲解写出来的代码如下:
xaml文件上:头部文件<wps:PageBase x:Class="FastRetailing.G1.WPS.Client.Biz.Monthly.View.Monthlylaborcostview"
xmlns:wtk="clr-namespace:Microsoft.Windows.Controls;assembly=WPFToolkit"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/up-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
xmlns:wps="clr-namespace:FastRetailing.G1.WPS.Framework.Client.Base;assembly=WPS.Framework.Client"
xmlns:wpsv="clr-namespace:FastRetailing.G1.WPS.Framework.Client.Validation;assembly=WPS.Framework.Client"
xmlns:l="clr-namespace:FastRetailing.G1.WPS.Client.Biz.Monthly.View" datagrid的文件部分:<my:DataGrid ItemsSource="{Binding}" Grid.Column="3" Grid.Row="3" Height="120" HorizontalAlignment="Left" Margin="1,0,0,0" Name="dataGrid1" VerticalAlignment="Bottom" Width="1000" Grid.ColumnSpan="5" SelectionMode="Single" SelectionUnit="Cell">
<my:DataGrid.Columns>
<my:DataGridTextColumn Header="週間" Width="80" Binding="{Binding Path=Name}">
<my:DataGridTextColumn.CellStyle>
<Style TargetType = "my:DataGridCell">
<Setter Property="Background" Value="{Binding Path=Name, Converter={StaticResource ValueConVerter }}">
</Setter>
</Style >
</my:DataGridTextColumn.CellStyle>
</my:DataGridTextColumn> </my:DataGrid.Columns>
</my:DataGrid>后台c#代码如下:
public class ValueConVerter : IValueConverter
{ public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if ((int)value > 10)
{
return Brushes.Blue;
}
else
{
return Brushes.Green;
}
} public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}我现在出现的问题是标注红色的Converter部分总是提示找不到文件名,这个问题是因为我前台未到如什么文件,还是后台的这个类的创建位置有问题
谢谢各位!
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/up-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
xmlns:local="clr-namespace:WpfBrowserApplication1"
d:DesignHeight="500" d:DesignWidth="300"
Title="Page1">
<Page.Resources>
<local:ConVerter x:Key="Converter" />
</Page.Resources>
<Grid>
<DataGrid AutoGenerateColumns="False" Height="310" Name="dataGrid1" Width="346" ItemsSource="{Binding}">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Path=A}" Header="Header1">
<DataGridTextColumn.CellStyle>
<Style TargetType="DataGridCell" >
<Setter Property="Background" Value="{Binding Path=A, Converter={StaticResource Converter}}"/>
</Style>
</DataGridTextColumn.CellStyle>
</DataGridTextColumn>
<DataGridTextColumn Binding="{Binding Path=B}" Header="Header2">
<DataGridTextColumn.CellStyle>
<Style TargetType="DataGridCell" >
<Setter Property="Background" Value="{Binding Path=B, Converter={StaticResource Converter}}"/>
</Style>
</DataGridTextColumn.CellStyle>
</DataGridTextColumn>
</DataGrid.Columns>
</DataGrid>
</Grid>
</Page>
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;
using System.Data;namespace WpfBrowserApplication1
{
/// <summary>
/// Page1.xaml 的交互逻辑
/// </summary>
public partial class Page1 : Page
{
DataTable dt = new DataTable();
public Page1()
{
dt.Columns.Add("A", typeof(int));
dt.Columns.Add("B", typeof(int));
for (int i = 0; i < 20; i++)
{
DataRow dr = dt.NewRow();
dr[0] = i;
dr[1] = i + 5;
dt.Rows.Add(dr);
}
dt.AcceptChanges();
InitializeComponent();
dataGrid1.DataContext = dt.DefaultView;
}
}
public class ConVerter : IValueConverter
{ public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if ((int)value > 10)
{
return Brushes.Blue;
}
else
{
return Brushes.Green;
}
} public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
}
所以如果是WEB程序同时具有WPF的优势,就采用SilverLight。
WPF浏览器应用程序本质上其实和WPF桌面程序一样都需要安装,反倒多了证书的麻烦,不如直接作桌面的。