Как я могу привязать флажок к строке, чтобы при установке / снятии флажка значение строки изменялось? У меня есть это (с CheckAll в качестве моего флажка):
class MyWindow(Window):
def __init__(self):
wpf.LoadComponent(self, 'BioApp1.xaml')
openDialog = SequenceFileOperations()
self.Sequences = openDialog.Open()
object = MyObjects(self.Sequences)
self.CheckAll.DataContext = object
self.IDLabel.DataContext = object
class MyObjects(object):
def __init__(self, Sequences):
self.CurrentSeq = Sequences[0]
self.ID = self.CurrentSeq.ID
и
<Label Height="28" HorizontalAlignment="Left" Margin="152,221,0,0" VerticalAlignment="Top" Width="98" Name="IDLabel" Content="{Binding Path=ID}"/>
Я хочу, чтобы, когда флажок снят, на ярлыке должен отображаться идентификатор последовательности, но когда он установлен, он должен просто отображать «Все». Для этого мне нужно изменить свойство идентификатора CurrentSeq на «Все». Как мне сделать это путем привязки данных? Есть ли другой способ сделать это?
РЕДАКТИРОВАТЬ: Я чувствую себя действительно глупо, но я просто не могу заставить это работать. Я пытался следовать предложению об использовании getter / setter, но я думаю, что недостаточно знаю. Прежде чем делать что-то более сложное, я просто хочу отключить кнопку, когда поставлю галочку, и включить ее, когда сниму флажок. Вот что я написал:
class MyWindow(Window):
def __init__(self):
wpf.LoadComponent(self, 'App1.xaml')
object = BindingClass(self.Check, self.PreviousBtn)
self.PreviousBtn.DataContext = object
class BindingClass(object):
def __init__(self, Check, PreviousBtn):
self.Check = Check
self.PreviousBtn = PreviousBtn
def GetEnabledConverter(self):
if self.CheckAll.IsChecked:
return self.PreviousBtn.IsEnabled
def SetEnabledConverter(self):
if self.CheckAll.IsChecked:
self.PreviousBtn.IsEnabled = False
else:
self.PreviousBtn.IsEnabled = True
EnabledConverter = property(GetEnabledConverter, SetEnabledConverter)
И
<Button Content="Previous" IsEnabled="{Binding Path=EnabledConverter}" />
К сожалению, нет ошибки, но и нет эффекта. Код ничего не делает. Буду очень признателен, если вы поможете мне с этим.
РЕДАКТИРОВАТЬ 2: Используя notify_property, я попробовал это:
class MyWindow(Window):
def __init__(self):
wpf.LoadComponent(self, 'Test.xaml')
c = Converters(self.check1, self.Button)
self.Button.DataContext = c
class Converters(NotifyPropertyChangedBase):
def __init__(self, check, button):
super(Converters, self).__init__()
self.Check = check
self.Button = button
@notify_property
def ButtonEnabled(self):
return self.Button.IsEnabled
@ButtonEnabled.setter
def ButtonEnabled(self):
if self.Check.IsChecked:
self.Button.IsEnabled = False
else:
self.Button.IsEnabled = True
Результат тот же: эффекта нет. Я просто не могу понять, где проблема.