SlideShare uma empresa 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
機会があったら次回にでも・・・
データバインディングは便利だけど
覚えることがいろいろある。

Mais conteúdo relacionado

Semelhante 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アプリケーションフレームワークの基本
 

Mais de Makoto Nishimura

Mais 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ストア攻略
 

Último

Último (11)

Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 

Uwpでみるxaml入門第二回