VisualStudioの空白のWindowsRTアプリから始めました。http://blogs.u2u.be/diederik/post/2011/11/14/null.aspxからBooleanToVisibilityコンバーターを実装しました。
App.xamlにこれがあります:
<Pathfinder:BooleanToVisibilityConverter x:Key="VisibleToInvisibleConverter" />
<Pathfinder:BooleanToVisibilityConverter x:Key="InvisibleToVisibleConverter" IsReversed="True" />
概念実証のために、表示をオンに切り替えようとしているトグルスイッチとテキストボックスを追加しました。トグルスイッチは次のとおりです。
<ToggleSwitch IsOn="{Binding IsEditing, Mode=TwoWay}"
Margin="10"
HorizontalAlignment="Left"
VerticalAlignment="Top"
OffContent=""
OnContent=""
BorderThickness="0"
Width="80"
/>
テキストボックスは次のとおりです。
<TextBlock x:Name="pageTitle" Grid.Column="1" Text="{StaticResource AppName}"
Style="{StaticResource PageHeaderTextStyle}"
Visibility="{Binding IsEditing, Converter={StaticResource InvisibleToVisibleConverter}}"/>
スイッチがオフのときはテキストボックスが表示され、スイッチがオンのときはテキストボックスが非表示になるようにしようとしています。テキストボックスのコンバーターを「BooleanToVisibilityConverter」または「VisibleToInvisibleConverter」に設定すると、実際に消えてしまいます(「InvisibleToVisibleConverter」で表示されます)。スイッチのIsOn変数をIsEditingにバインドしたので、その変数のオフ/オンを切り替えてから、可視性のオフ/オンを切り替える必要があります。
これが私の通知クラスです:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Windows.UI.Xaml.Data;
using System.ComponentModel;
namespace Pathfinder
{
class Notifier
{
private bool isEditing;
public event PropertyChangedEventHandler PropertyChanged;
public bool IsEditing
{
get { return isEditing; }
set
{
isEditing = value;
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs("IsEditing"));
}
}
}
}
MainPage.Xaml.CSでそのインスタンスを作成します。
public MainPage()
{
this.InitializeComponent();
this.DataContext = new Notifier();
}
このトグルを設定するために私が見落としているかもしれないことについて誰かが考えていますか?