데이터베이스가 연결되어 있으면 상태 표시 줄에 표시 할 문자열 속성을 바인딩하려고합니다. 여기 코드는 다음과 같습니다상태 표시 줄 텍스트에 문자열 속성 바인딩
C#을
public class TimeBase : INotifyPropertyChanged
{
private DXTickDB db;
string[] args = new string[] { };
public event PropertyChangedEventHandler PropertyChanged;
private bool isTBconnected;
public string connectionStatus { get; set; }
public bool tb_isconnected
{
get { return isTBconnected; }
set
{
if (value != isTBconnected)
{
isTBconnected = value;
if(isTBconnected == false)
{
connectionStatus = "TimeBase is not connected";
}
else
{
connectionStatus = "TimeBase is connected";
}
OnPropertyChanged("connectionStatus");
}
}
}
protected virtual void OnPropertyChanged(string propertyName)
{
PropertyChangedEventHandler handler = PropertyChanged;
if (handler != null) handler(this, new PropertyChangedEventArgs(propertyName));
}
#region TimeBase Connection
public void ConnectToTimeBase()
{
if (args.Length == 0)
args = new string[] { "not available for security reasons" };
db = TickDBFactory.createFromUrl(args[0]);
try
{
db.open(true);
tb_isconnected = true;
}
catch
{
tb_isconnected = false;
}
}
#endregion
이 상태 내 메인 창에서 막대의 XAML입니다 : 아니, 난 문자열 속성에 connectionStatus를 바인딩하기 위해 노력하고있어
<StatusBar Height="23" DockPanel.Dock="Bottom" Background="Green">
<StatusBarItem>
<StackPanel Orientation="Horizontal">
<TextBlock
Foreground="{StaticResource Foreground}"
Text="{Binding Path=connectionStatus}">
</TextBlock>
</StackPanel>
</StatusBarItem>
</StatusBar>
하지만, 텍스트를 표시하더라도 디버깅 할 때 connectionStatus가 업데이트 된 것을 볼 수 있습니다. 여기에 무엇이 잘못된지에 대한 제안이 있습니까?
당신은 당신의 윈도우의 데이터 컨텍스트를 설정 했습니까? – user1064519
내가 어떻게 그럴 수 있다고 생각하지 않습니까? @ user1064519 – kknaguib
제 대답을 참조하십시오 – user1064519