クラス インスタンスと 2 つの WPF テキスト ボックスの間のバインドを設定したいと考えています。それでも、テキストボックスはステータスを変更せず、何が間違っているのかわかりません。
XAML
<DockPanel>
<TextBlock Style="{StaticResource caption}">Testing System</TextBlock>
<TextBlock DockPanel.Dock="Left" x:Name="txt1" Text="DC"/>
<TextBlock DockPanel.Dock="Right" x:Name="txt2" Text="PD"/>
<Button Height="20" Width="100" Click="clickBinding">Bind</Button>
<Button Height="20" Width="100" Click="clickChangeBinding">Change Status</Button>
</DockPanel>
MainWindow.xaml.cs
private ADSbinding myADS = new ADSbinding();
private void clickBinding(object sender, RoutedEventArgs e)
{
Binding b1, b2;
b1 = new Binding();
b2 = new Binding();
b1.Source = myADS.DeviceConfigured;
b2.Source = myADS.ProcessingData;
b1.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged;
b2.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged;
BindingOperations.SetBinding(txt1, TextBlock.TextProperty, b1);
BindingOperations.SetBinding(txt2, TextBlock.TextProperty, b2);
}
private void clickChangeBinding(object sender, RoutedEventArgs e)
{
myADS.changedata();
}
クラス:
public class ADSbinding : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
private string deviceConfigured = "false";
private string processingData = "false";
public ADSbinding()
{
ProcessingData = "true";
}
// Get-Set methods
public string DeviceConfigured
{
get { return deviceConfigured; }
set
{
deviceConfigured = value;
Changed("DeviceConfigured");
}
}
public string ProcessingData
{
get { return processingData; }
set
{
processingData = value;
Changed("ProcessingData");
}
}
private void Changed(string propertyName)
{
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
public void changedata()
{
DeviceConfigured = "change";
ProcessingData = "change";
}
}
「clickBinding」を押すと状態が変化し、「clickChangeBinding」のままだと、再度「clickBinding」をクリックすると状態が変化します。これは非常に単純な試みであり、どこに問題があるのか わかりません。誰?