したがって、App.xaml.csで定義されている2つのグローバルプロパティのUsernameとCurrentViewがあり、それらをMy Viewsにバインドしています。別のビューでそれらの両方を結合XamlバインディングはApplication.Currentと連携していません
App.xaml.cs
public partial class App : Application, INotifyPropertyChanged
{
public static object username;
public object Username { get { return username; } set { username = value; } }
public static Object currentView = new LoginView();
public object CurrentView
{
get { return currentView; }
set { currentView = value; }
}
public event PropertyChangedEventHandler PropertyChanged;
protected void OnPropertyChanged(string name)
{
PropertyChangedEventHandler handler = PropertyChanged;
if (handler != null)
{
handler(this, new PropertyChangedEventArgs(name));
}
}
}
とIM。 MainView.xaml
<Page Content="{Binding CurrentView, Source={x:Static Application.Current}}">
</Page>
LoginView.xaml
<TextBox HorizontalAlignment="Left" Height="23" TextWrapping="Wrap" VerticalAlignment="Top" Width="165" Margin="218,159,0,0" Text="{Binding Path=Username, Source={x:Static Application.Current}, Mode=OneWay, UpdateSourceTrigger=PropertyChanged, NotifyOnSourceUpdated=True, NotifyOnTargetUpdated=True}" />
MAINVIEWに結合は完全に正常に動作しています。それは、私がCurrentViewをapp.xaml.csで初期化したLoginViewと、ソースが変更されたときに変更されることを示しています。
ただし、LoginViewのテキストボックスにバインドされているユーザー名は更新されません。 カントが問題を理解しているようです。これは、IvがUpdateSourceTriggerをPropertyChangedに設定すると更新されるはずです。
すべてのヘルプははるかに高く評価されます:)
Ivが文字列に変更されました。まだ残念です:( public static string username; 公開文字列ユーザー名{get {return username;} set {username = value;}} –
私の更新された回答を確認してください! – AlexDrenea
Ivはすべてのモードでそれを試しました。それをTwoWayに保つ –