앱바 버튼의 가시성 속성을 바인딩하는 데 몇 가지 문제가 있습니다. 앱바 버튼 가시성을 다른 요소 가시성에 바인딩하고 싶습니다. 다른 요소가 표시되면 앱 바가 표시됩니다.
그래서 여기에 내 코드가 있습니다.
<common:LayoutAwarePage.BottomAppBar>
<AppBar>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right">
<Button Visibility="{Binding ElementName=btnSave, Path=Visibility}"
Click="Edit_Click" />
...(more buttons)
</StackPanel>
</AppBar>
</common:LayoutAwarePage.BottomAppBar>
<Button Grid.Row="7" Grid.Column="0"
x:Name="btnSave"
Content="Save"
Style="{StaticResource EditModeButtonStyle}"
Click="Save_Click" />
코드 뒤에서 btnSave 가시성을 변경하고 앱바 버튼의 가시성에 반응이 없습니다. 나는 텍스트 블록만으로 동일한 바인딩을 시도했지만 잘 작동했습니다. 나는 또한 appbar에서 변환기를 사용하려고 시도했으며 (필요하지 않다고 생각하더라도) 디버거가 변환기의 메서드를 읽지 않는 것을 보았습니다. 나는 더 많은 사람들이 비슷한 앱바 문제를 작성하는 것을 보았지만 대답 중 어느 것도 나를 돕지 않습니다. 누군가 내가 어떻게 할 수 있는지 알고 있습니까? (앱바 가시성을 변경하기 위해 코드를 사용하고 싶지 않습니다.)
appbar 요소가 페이지의 요소를 보지 못해서 요소 바인딩이 작동하지 않는 것 같습니다. INotifyPropertyChanged
인터페이스 를 구현하는 독립 속성을 사용하는 것이 좋습니다 . 가시성을 설정하려는 요소에 해당 속성을 바인딩합니다.
씨#
public sealed partial class BlankPage4 : Page, INotifyPropertyChanged
{
private Visibility _IsHide;
public Visibility IsHide
{
get { return _IsHide; }
set
{
_IsHide = value;
OnPropertyChanged("IsHide");
}
}
public BlankPage4()
{
this.InitializeComponent();
DataContext = this;
}
private void btnHideAll_Click(object sender, RoutedEventArgs e)
{
IsHide = Visibility.Collapsed;
}
public event PropertyChangedEventHandler PropertyChanged;
private void OnPropertyChanged(string property)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(property));
}
}
}
XAML
<Page.BottomAppBar>
<AppBar IsSticky="True" IsOpen="True">
<StackPanel Orientation="Horizontal">
<Button x:Name="btnHello" Visibility="{Binding IsHide}" Content="Hello" />
<TextBlock Visibility="{Binding IsHide}" Text="Hello" FontSize="20"/>
</StackPanel>
</AppBar>
</Page.BottomAppBar>
<Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
<StackPanel>
<Button x:Name="btnSave" Visibility="{Binding IsHide}" Content="Save" />
<Button Content="Hide All" Click="btnHideAll_Click" />
</StackPanel>
</Grid>
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다