SlideShare una empresa de Scribd logo
1 de 27
<ButtonText= “hoge”/>
以下は等価
Button btn = new Button();
btn.Content = "hoge";
DEMO:TemplateSample
作戦1:テンプレートを編集する
作戦2:自作してしまう
イベントハンドラー
XAMLからコードビハインドのメソッドを呼び出す
プログラミングのプロパティと
XAMLのプロパティを紐付ける
疎結合
This.textbox.text = “ほげ”;
が不要になる。
XAMLのプロパティ同士も紐付けれる
DEMO
<TextBlockText="{Binding name, Mode=OneWay}" >
INotifyPropertyChanged = 変更を通知する仕組み
public class ViewModelBase : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
public void NotifyPropertyChanged(String propertyName = "")
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
}
INotifyPropertyChangedって面倒じゃね?
という人は
ReactivePropertyを調べると幸せになれるかも
例えば、コントロールの表示非常時を
データバインディングする場合は・・・
VisibilityをViewModelで持つのもなぁ・・・
だめなやつ・・・
public class MainPageViewModel : ViewModelBase
{
private Visibility _visibility;
public Visibility visibility
{
get { return _visibility; }
set
{
_visibility = value;
this.NotifyPropertyChanged("visibility");
}
}
IValueConverter で型をコンバート
public class BoolToVisibilityConverter : IValueConverter
{
public object Convert(object value,Type targetType, object parameter, string language)
{
// valueがfalseならCollapsedを返す
if (value is bool && (bool)value != false)
{
return (IsInvert) ?Visibility.Visible :Visibility.Collapsed;
}
return (IsInvert) ?Visibility.Collapsed :Visibility.Visible;
}
public object ConvertBack(object value,Type targetType, object parameter, string language)
{
throw new NotImplementedException();
}
X:Bind
UWPから追加。
Datacontextではなくコードビハインドにバインド
できる
コンパイル時にエラーが出る
データバインディングが生きてくるのは
配列やコレクションなどのリストデータを扱う場合
DEMO:ListDataBinding
アニメーションもXAMLで定義可能
編集はタイムライン方式(Adobe Flashもそう)
アニメーションもXAMLで表現
DEMO:AnimationSample
・・・まぁ、読むのも難しいし、手打ちだと書けないよね・・・
<Storyboard x:Name="Storyboard1">
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransf
<EasingDoubleKeyFrame KeyTime="0"Value="0"/>
<EasingDoubleKeyFrame KeyTime="0:0:1"Value="208"/>
</DoubleAnimationUsingKeyFrames>
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransf
<EasingDoubleKeyFrame KeyTime="0"Value="0"/>
<EasingDoubleKeyFrame KeyTime="0:0:1"Value="-156"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
フレームワークとかツールがほぼ必須
MVVMならPrismかmvvmlight
XAML周りはXamlToolkit
機会があったら次回にでも・・・
データバインディングは便利だけど
覚えることがいろいろある。

Más contenido relacionado

Similar a Uwpでみるxaml入門第二回

Hokuriku.NET ASP.NET MVC入門 「実践」 20120825
Hokuriku.NET ASP.NET MVC入門 「実践」 20120825 Hokuriku.NET ASP.NET MVC入門 「実践」 20120825
Hokuriku.NET ASP.NET MVC入門 「実践」 20120825 miso- soup3
 
From Swing to JavaFX - SwingからJavaFXへのマイグレーションガイド
From Swing to JavaFX  - SwingからJavaFXへのマイグレーションガイドFrom Swing to JavaFX  - SwingからJavaFXへのマイグレーションガイド
From Swing to JavaFX - SwingからJavaFXへのマイグレーションガイドYuichi Sakuraba
 
JavaFX 2.0 - リッチクライアントのためのUI基盤
JavaFX 2.0 - リッチクライアントのためのUI基盤JavaFX 2.0 - リッチクライアントのためのUI基盤
JavaFX 2.0 - リッチクライアントのためのUI基盤Yuichi Sakuraba
 
Movable TypeのWebアプリケーションフレームワークの基本
Movable TypeのWebアプリケーションフレームワークの基本Movable TypeのWebアプリケーションフレームワークの基本
Movable TypeのWebアプリケーションフレームワークの基本Hajime Fujimoto
 

Similar a Uwpでみるxaml入門第二回 (7)

Backbone.js
Backbone.jsBackbone.js
Backbone.js
 
Scene BuilderでFXML
Scene BuilderでFXMLScene BuilderでFXML
Scene BuilderでFXML
 
Hokuriku.NET ASP.NET MVC入門 「実践」 20120825
Hokuriku.NET ASP.NET MVC入門 「実践」 20120825 Hokuriku.NET ASP.NET MVC入門 「実践」 20120825
Hokuriku.NET ASP.NET MVC入門 「実践」 20120825
 
From Swing to JavaFX - SwingからJavaFXへのマイグレーションガイド
From Swing to JavaFX  - SwingからJavaFXへのマイグレーションガイドFrom Swing to JavaFX  - SwingからJavaFXへのマイグレーションガイド
From Swing to JavaFX - SwingからJavaFXへのマイグレーションガイド
 
JavaFX 2.0 - リッチクライアントのためのUI基盤
JavaFX 2.0 - リッチクライアントのためのUI基盤JavaFX 2.0 - リッチクライアントのためのUI基盤
JavaFX 2.0 - リッチクライアントのためのUI基盤
 
Knockout
KnockoutKnockout
Knockout
 
Movable TypeのWebアプリケーションフレームワークの基本
Movable TypeのWebアプリケーションフレームワークの基本Movable TypeのWebアプリケーションフレームワークの基本
Movable TypeのWebアプリケーションフレームワークの基本
 

Más de Makoto Nishimura

リモートで技術を伝える方法(発表版)
リモートで技術を伝える方法(発表版)リモートで技術を伝える方法(発表版)
リモートで技術を伝える方法(発表版)Makoto Nishimura
 
リモートで技術を伝える方法(フル)
リモートで技術を伝える方法(フル)リモートで技術を伝える方法(フル)
リモートで技術を伝える方法(フル)Makoto Nishimura
 
Minecraftでプログラミングを学べるって本当?
Minecraftでプログラミングを学べるって本当?Minecraftでプログラミングを学べるって本当?
Minecraftでプログラミングを学べるって本当?Makoto Nishimura
 
Power Automateを使ってみた
Power Automateを使ってみたPower Automateを使ってみた
Power Automateを使ってみたMakoto Nishimura
 
Power Automate Desktop入門
Power Automate Desktop入門Power Automate Desktop入門
Power Automate Desktop入門Makoto Nishimura
 
WinUI 3.0 Preview 1を触ってみた(.NETラボ2020年6月登壇資料)
WinUI 3.0 Preview 1を触ってみた(.NETラボ2020年6月登壇資料)WinUI 3.0 Preview 1を触ってみた(.NETラボ2020年6月登壇資料)
WinUI 3.0 Preview 1を触ってみた(.NETラボ2020年6月登壇資料)Makoto Nishimura
 
AzureDevOpsの機能解説
AzureDevOpsの機能解説AzureDevOpsの機能解説
AzureDevOpsの機能解説Makoto Nishimura
 
OSS開発で.NETを活用してDevOps
OSS開発で.NETを活用してDevOpsOSS開発で.NETを活用してDevOps
OSS開発で.NETを活用してDevOpsMakoto Nishimura
 
Amazon echoがやってきた
Amazon echoがやってきたAmazon echoがやってきた
Amazon echoがやってきたMakoto Nishimura
 
2017年度注目の.netテクノロジー
2017年度注目の.netテクノロジー2017年度注目の.netテクノロジー
2017年度注目の.netテクノロジーMakoto Nishimura
 
Universal windows platformの新機能をおさえよう
Universal windows platformの新機能をおさえようUniversal windows platformの新機能をおさえよう
Universal windows platformの新機能をおさえようMakoto Nishimura
 
2016年注目の.netテクノロジー
2016年注目の.netテクノロジー2016年注目の.netテクノロジー
2016年注目の.netテクノロジーMakoto Nishimura
 
Uwpハンズオン参加レポート
Uwpハンズオン参加レポートUwpハンズオン参加レポート
Uwpハンズオン参加レポートMakoto Nishimura
 
Aspnet mvc 6の今を紹介
Aspnet mvc 6の今を紹介Aspnet mvc 6の今を紹介
Aspnet mvc 6の今を紹介Makoto Nishimura
 
20150926 uwpストア攻略
20150926 uwpストア攻略20150926 uwpストア攻略
20150926 uwpストア攻略Makoto Nishimura
 

Más de Makoto Nishimura (20)

リモートで技術を伝える方法(発表版)
リモートで技術を伝える方法(発表版)リモートで技術を伝える方法(発表版)
リモートで技術を伝える方法(発表版)
 
リモートで技術を伝える方法(フル)
リモートで技術を伝える方法(フル)リモートで技術を伝える方法(フル)
リモートで技術を伝える方法(フル)
 
windows terminal入門
windows terminal入門windows terminal入門
windows terminal入門
 
Minecraftでプログラミングを学べるって本当?
Minecraftでプログラミングを学べるって本当?Minecraftでプログラミングを学べるって本当?
Minecraftでプログラミングを学べるって本当?
 
Power Automateを使ってみた
Power Automateを使ってみたPower Automateを使ってみた
Power Automateを使ってみた
 
Power Automate Desktop入門
Power Automate Desktop入門Power Automate Desktop入門
Power Automate Desktop入門
 
Microsoft Teams Custom
Microsoft Teams CustomMicrosoft Teams Custom
Microsoft Teams Custom
 
WinUI 3.0 Preview 1を触ってみた(.NETラボ2020年6月登壇資料)
WinUI 3.0 Preview 1を触ってみた(.NETラボ2020年6月登壇資料)WinUI 3.0 Preview 1を触ってみた(.NETラボ2020年6月登壇資料)
WinUI 3.0 Preview 1を触ってみた(.NETラボ2020年6月登壇資料)
 
AzureDevOpsの機能解説
AzureDevOpsの機能解説AzureDevOpsの機能解説
AzureDevOpsの機能解説
 
EC-CUBE 4 入門
EC-CUBE 4 入門EC-CUBE 4 入門
EC-CUBE 4 入門
 
OSS開発で.NETを活用してDevOps
OSS開発で.NETを活用してDevOpsOSS開発で.NETを活用してDevOps
OSS開発で.NETを活用してDevOps
 
.NETの最近
.NETの最近.NETの最近
.NETの最近
 
Amazon echoがやってきた
Amazon echoがやってきたAmazon echoがやってきた
Amazon echoがやってきた
 
2017年度注目の.netテクノロジー
2017年度注目の.netテクノロジー2017年度注目の.netテクノロジー
2017年度注目の.netテクノロジー
 
初心者目線でIo t
初心者目線でIo t初心者目線でIo t
初心者目線でIo t
 
Universal windows platformの新機能をおさえよう
Universal windows platformの新機能をおさえようUniversal windows platformの新機能をおさえよう
Universal windows platformの新機能をおさえよう
 
2016年注目の.netテクノロジー
2016年注目の.netテクノロジー2016年注目の.netテクノロジー
2016年注目の.netテクノロジー
 
Uwpハンズオン参加レポート
Uwpハンズオン参加レポートUwpハンズオン参加レポート
Uwpハンズオン参加レポート
 
Aspnet mvc 6の今を紹介
Aspnet mvc 6の今を紹介Aspnet mvc 6の今を紹介
Aspnet mvc 6の今を紹介
 
20150926 uwpストア攻略
20150926 uwpストア攻略20150926 uwpストア攻略
20150926 uwpストア攻略
 

Uwpでみるxaml入門第二回