做WPF开发时,最好遵循UI和业务分离的方式,例如: 1、确定数据模型 2、确定业务逻辑 3、UI显示由于WPF做UI太灵活了,所以一定要记住,不变的是你的数据和行为,变化的是UI,所以说,在WPF中,一般不会出现在代码创建UI的情况。通常使用数据绑定,样式,控件模板来处理UI。例如: 1、数据模型 public class UserInfo { public UserInfo(int id , string name , int sex) { this.Id = id; this.Name = name; this.Sex = (sex == 0) ? "女":"男"; } public int Id {get;set;} public string Name {get;set;} public string Sex{get;set;} }2、业务逻辑(略)3、在UI上通过绑定来显示数据
1、确定数据模型
2、确定业务逻辑
3、UI显示由于WPF做UI太灵活了,所以一定要记住,不变的是你的数据和行为,变化的是UI,所以说,在WPF中,一般不会出现在代码创建UI的情况。通常使用数据绑定,样式,控件模板来处理UI。例如:
1、数据模型
public class UserInfo
{
public UserInfo(int id , string name , int sex)
{
this.Id = id;
this.Name = name;
this.Sex = (sex == 0) ? "女":"男";
} public int Id {get;set;}
public string Name {get;set;}
public string Sex{get;set;}
}2、业务逻辑(略)3、在UI上通过绑定来显示数据
<DataGridTemplateColumn Header=""> <DataGridTemplateColumn.CellTemplate>
<DataTemplate >
但是我自己的电脑上
<DataGridTemplateColumn.CellTemplate> 这个点不出
只能点出
<dg:VisualStateBehavior.VisualStateBehavior>
如果谁给我个项目实例,在追加分,谢谢各位大虾了
代码分两部分,一部分是Xaml,一部分为后台代码
XAML代码:<Window x:Class="DataGridSample.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<DataGrid ItemsSource="{Binding TestData}" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Header="名称" Binding="{Binding Path=Name}"/>
<DataGridTemplateColumn Header="操作">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock>
<Hyperlink Click="Hyperlink_Click">编辑</Hyperlink>
<Hyperlink Click="Hyperlink_Click_1">删除</Hyperlink>
</TextBlock>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
</Grid>
</Window>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent(); this.DataContext = this;
} private List<MyData> m_data = null;
public List<MyData> TestData
{
get
{
if (this.m_data == null)
{
this.m_data = new List<MyData>();
for (int index = 0; index < 100; index++)
{
this.m_data.Add(new MyData()
{
Name = string.Format("Item{0}",index.ToString())
});
}
}
return this.m_data;
}
} private void Hyperlink_Click(object sender, RoutedEventArgs e)
{
MessageBox.Show("编辑");
} private void Hyperlink_Click_1(object sender, RoutedEventArgs e)
{
MessageBox.Show("删除");
}
} public class MyData
{
public string Name
{
get;
set;
}
}
}
以后如果有问题继续向你请教哈