, 내가 당신이 일상적인 개발/설계 작업에 혼합 및 Visual Studio를 사용하는 방법 이해를 도와주세요, 여기에 실제 시나리오는 다음과 같습니다Expression Blend를 사용하여 Visual Studio에서 만든 DataTemplate을 편집하려면 어떻게해야합니까? 실제 프로젝트에 Expression Blend를</strong>뿐만 아니라 비주얼 스튜디오를 사용하여 당신의 그 <strong>를 들어
Visual Studio에서 다음과 같은 간단한 WPF 응용 프로그램을 만들었습니다. 은 간단한 오렌지색 상자에 고객을 표시하는 DataTemplate을 사용하여 고객 개체 목록을 보여줍니다.
지금 Expression Blend를 사용하여이 DataTemplate에 일부 pizazz를 추가하려고합니다.
내가 Expression Blend를 내가 크기를 조정, 내가의 색상을 변경할 수있는 오렌지 상자를 참조 그들에 I 마우스로 애니메이션을 만들려고 사고 등의 프로젝트를 열그러나, 모든 Expression Blend에서 완전히 빈 상자입니다.
그래서 이해 :
이- Expression Blend를 내 데이터가 표시되지 않습니다 따라서 뷰 모델에서 오는하고 이해 수없는 것. 이것이 Blend의 한계입니까, 아니면 Blend가 런타임에 어떤 데이터가 나오는지 해석 할 수 있도록 코드를 변경해야합니까?
- "샘플 데이터"기능이있는 Expression Blend 3을 사용하고 있습니다. 이 샘플 데이터 기능을 사용하는 가장 좋은 방법은 C#을 해석 할 수 없으며 ViewModel 속성에서 어떤 데이터가 나오는지 이해하더라도 목록 상자를 채우기 위해 어떻게해야 적어도 어떻게 만들 수 있습니까? 일부 더미 데이터 그래서 내가 DataTemplate을 조작 할 수 있습니까?
XAML : 뒤에
<Window x:Class="TestStringFormat234.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300">
<Window.Resources>
<DataTemplate x:Key="DataTemplateCustomers">
<Border CornerRadius="5" Background="Orange" Padding="5" Margin="3">
<StackPanel Orientation="Horizontal">
<TextBlock>
<TextBlock.Text>
<MultiBinding StringFormat="{}{0} {1} (hired on {2:MMM dd, yyyy})">
<Binding Path="FirstName"/>
<Binding Path="LastName"/>
<Binding Path="HireDate"/>
</MultiBinding>
</TextBlock.Text>
</TextBlock>
</StackPanel>
</Border>
</DataTemplate>
</Window.Resources>
<Grid>
<ListBox ItemsSource="{Binding GetAllCustomers}"
ItemTemplate="{StaticResource DataTemplateCustomers}">
</ListBox>
</Grid>
</Window>
코드 :
using System.Windows;
using System.Collections.ObjectModel;
using System;
namespace TestStringFormat234
{
public partial class Window1 : Window
{
public Window1()
{
InitializeComponent();
DataContext = new CustomerViewModel();
}
}
//view model
public class CustomerViewModel
{
public ObservableCollection<Customer> GetAllCustomers {
get {
ObservableCollection<Customer> customers = new ObservableCollection<Customer>();
customers.Add(new Customer { FirstName = "Jim", LastName = "Smith", HireDate = DateTime.Parse("2007-12-31") });
customers.Add(new Customer { FirstName = "Jack", LastName = "Jones", HireDate = DateTime.Parse("2005-12-31") });
return customers;
}
}
}
//model
public class Customer
{
public string FirstName { get; set; }
public string LastName { get; set; }
public DateTime HireDate { get; set; }
}
}
왜 대답으로 답변을 두지 않고 그런 다음 스스로 받아들입니다. 다른 사람들이보기에 더 쉬울 것입니다. –
기억한다면 쉽게 알아볼 수 있지만, 어려움을 겪을 수있는 장애물이 있습니다. 자신의 질문에 답하기 전에 48 개의 답을 기다린 후 48 시간을 기다려야합니다. –
글쎄 대답은 적어도. –