이제 XAML을 GUI 용으로 사용해 보았습니다. (학습하면서 ...) XAML과 C#에서 문제없이 데이터 바인딩을 수행 할 수있었습니다. 또 다른,하지만 지금은 가치를 앞뒤로 전달해야 할 때가 왔고 나는 조금 잃어 버렸습니다. 컴파일하고 페이지를 탐색하려고하면 XamlParseException가 발생합니다. 지정된 클래스 이름이 실제 루트 인스턴스 유형과 일치하지 않습니다. 클래스 지시문을 제거하거나 XamlObjectWriterSettings.RootObjectInstance를 통해 인스턴스를 제공하십시오. 5 호선 위치 2.데이터 바인딩을 위해 C#에 XAML로드
어떤 도움이나 올바른 방향으로 부드럽게 밀쳐이 크게 감사합니다 :)
다음는 내가 어디 :
namespace TheAirline.GraphicsModel.PageModel.PageFinancesModel
{
/// <summary>
/// Interaction logic for PageFinances.xaml
/// </summary>
public partial class PageFinances : Page
{
private Airline Airline;
public PageFinances(Airline airline)
{
InitializeComponent();
this.Language = XmlLanguage.GetLanguage(new CultureInfo(AppSettings.GetInstance().getLanguage().CultureInfo, true).IetfLanguageTag);
this.Airline = airline;
Page page = null;
//loading the XAML
using (FileStream fs = new FileStream("TheAirline\\GraphicsModel\\PageModel \\PageFinancesModel\\PageFinances.xaml", FileMode.Open, FileAccess.Read))
{
page = (Page)XamlReader.Load(fs);
}
//finding XAML element and trying to set the value to a variable
string airlineCash = GameObject.GetInstance().HumanAirline.Money.ToString();
TextBox cashValue = (TextBox)page.FindName("cashValue");
cashValue.DataContext = airlineCash;
}
}
}
그리고 XAML의 처음 몇 줄을 :
XAML에서<Page
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:AirlineModel="clr-namespace:TheAirline.Model.AirlineModel"
mc:Ignorable="d"
x:Class="TheAirline.GraphicsModel.PageModel.PageFinancesModel.PageFinances"
xmlns:c="clr-namespace:TheAirline.GraphicsModel.Converters"
...>
</Page>
당신의 진술'나는 XAML과 C#에서 서로 독립적으로 데이터 바인딩을 할 수 있었지만 지금은 값을 앞뒤로주고 나는 약간 잃어버린 시간이왔다 '는 것이 완전하다. 모순 된. 당신이'DataBind'라면'DataBinding''ITSELF'가 데이터를 앞뒤로주고 있습니다. 나는 네가 의미하는 것을 이해하지 못한다. 또한,'TextBox cashValue = (TextBox) page.FindName ("cashValue");와'cashValue.DataContext = airlineCash;'와 같은 일을하면 안된다. 필요한 것을 지정해 주시면 도와 드리겠습니다. –
XAML의 기능과 장점을 배우면서 조금 모호한 (모순되는) 경우 미안합니다. 어쨌든 - 슬라이더의 값을 XAML 또는 C#의 텍스트 상자에만 바인딩 할 수 있지만 XAML에서 만든 값을 C#의 변수에 바인딩하거나 그 반대로 바인딩 할 수는 없습니다. 나는 그것이 더 의미가 있기를 바란다 :) – mikedugan