#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. Нет, без предупреждения, вот почему это было так запутанно.