WPF: Как мне привязать свойство ShowInTaskbar окна к кодовому значению?

#c# #wpf

#c# #wpf

Вопрос:

Я пытаюсь привязать свойство «ShowInTaskbar» моего окна к определению в коде, но оно не распознается. Я также не могу программно присвоить значение в коде. Я могу управлять им только путем прямого редактирования xaml, что в моей ситуации не идеально.

 <Window x:Class="WPFTest.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:local="clr-namespace:WPFTest"
    mc:Ignorable="d"
    FontFamily="Segoe UI Light"
    FontSize="14"
    Title="WPF Test"
    Name="Window"
    Icon="/Resources/icon.ico"
    Height="500" 
    Width="600" 
    WindowStartupLocation="CenterScreen"
    ResizeMode="NoResize"
    Loaded="Window_Loaded" 
    StateChanged="Window_StateChanged" 
    Closing="Window_Closing"
    ShowInTaskbar="{Binding ShowInTaskbar}"
    >
        <Grid></Grid>
   </Window>
  

Свойство, которое у меня есть в коде:

 private bool _showInTaskbar
public bool ShowInTaskbar
{
     get
          {
               return _showInTaskbar;
          }
     set
          {
               _showInTaskbar = value;
               OnPropertyChanged("ShowInTaskbar");
          }
}
  

Я также пытался:

 Window.ShowInTaskbar = false;
  

Почему моя привязка не распознается? Или, как я могу просто определить его в коде?

Ответ №1:

Тьфу. Это было потому, что я использовал то же имя, которое естественным образом наследует окно. Как только я изменил свое свойство на «ShowIconInTaskbar», я связал его, и оно функционирует должным образом.

Комментарии:

1. Хорошая находка. Вызывало ли это какое-либо предупреждение? Обычно C # предупреждает об этом конкретном случае, предлагая использовать либо new или override .

2. Нет, без предупреждения, вот почему это было так запутанно.