Düğümün düğmesinin IsEnabled özelliğini bir dize temel alarak bağlayacağınız için, bunun için bir dönüştürücü yapmayı deneyin.
Yani ...
<StackPanel>
<StackPanel.Resources>
<local:SomeStringConverter mystringtoboolconverter />
</StackPanel.Resources>
<Button IsEnabled="{Binding ElementName=mytree, Path=SelectedItem.Header, Converter={StaticResource mystringtoboolconverter}}" />
<StackPanel>
ve dönüştürücü:
[ValueConversion(typeof(string), typeof(bool))]
class SomeStringConverter : IValueConverter {
public object Convert(object value, Type targetType, object parameter, CultureInfo culture) {
string myheader = (string)value;
if(myhead == "something"){
return true;
} else {
return false;
}
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) {
return null;
}
}
DÜZENLEME: OP bir değişkene bağlamak istedik beri böyle bir şey yapılması gerekiyor:
public class SomeClass : INotifyPropertyChanged {
private string _somestring;
public string SomeString{
get{return _somestring;}
set{ _somestring = value; OnPropertyChanged("SomeString");}
}
public event PropertyChangedEventHandler PropertyChanged;
protected void OnPropertyChanged(string propertyName)
{
if (this.PropertyChanged != null)
{
this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
}
Daha sonra yukarıdaki ciltleme ifadesini şu şekilde değiştirin:
{Binding Path=SomeString, Converter={StaticResource mystringtoboolconverter}}
Not, güncellenmesi için kullanıcı arabiriminiz için INotifyPropertyChanged uygulamanız GEREKİR.
Cevabınız için teşekkür ederiz. Bu hat üzerinde benim xaml bir hata alıyorum: "Yerel türü: StringToBoolConverter bulunamadı." StringToBoolConverter, dönüştürücü sınıfımın adıdır. Bir isim alanıyla nitelendirmem gerekiyor mu? –
Number8
Anladım. Xaml'deki ad alanı sorunu. – Number8
Hmm. Bunun eksik olduğunu düşünüyorum; Button özelliği yanıtlandığında üye özelliği tarafından yükseltilen bir çeşit olay olması gerektiği gibi görünüyor, bu nedenle üye özelliği değiştirildiğinde düğmenin Etkin durumu değişecektir. – Number8